3v4l.org

run code in 300+ PHP versions simultaneously
<?php enum Suit { case Hearts; case Diamonds; case Clubs; case Spades; public const Suit OtherHearts = Suit::Hearts; } enum MyBool : int { case MyFalse = 0; case MyTrue = 1; public const MyBool OtherTrue = MyBool::MyTrue; } $r = new ReflectionClass( Suit::class ); echo $r; echo "\n"; $r = new ReflectionEnum( Suit::class ); echo $r; var_export( Suit::cases() ); echo "\n\n\n"; $r = new ReflectionClass( MyBool::class ); echo $r; echo "\n"; $r = new ReflectionEnum( MyBool::class ); echo $r; var_export( MyBool::cases() );
Output for git.master, git.master_jit
Class [ <user> final class Suit implements UnitEnum ] { @@ /in/hColU 3-10 - Constants [5] { Constant [ public Suit Hearts ] { Object } Constant [ public Suit Diamonds ] { Object } Constant [ public Suit Clubs ] { Object } Constant [ public Suit Spades ] { Object } Constant [ public Suit OtherHearts ] { Object } } - Static properties [0] { } - Static methods [1] { Method [ <internal, prototype UnitEnum> static public method cases ] { - Parameters [0] { } - Return [ array ] } } - Properties [1] { Property [ public protected(set) readonly string $name ] } - Methods [0] { } } Class [ <user> final class Suit implements UnitEnum ] { @@ /in/hColU 3-10 - Constants [5] { Constant [ public Suit Hearts ] { Object } Constant [ public Suit Diamonds ] { Object } Constant [ public Suit Clubs ] { Object } Constant [ public Suit Spades ] { Object } Constant [ public Suit OtherHearts ] { Object } } - Static properties [0] { } - Static methods [1] { Method [ <internal, prototype UnitEnum> static public method cases ] { - Parameters [0] { } - Return [ array ] } } - Properties [1] { Property [ public protected(set) readonly string $name ] } - Methods [0] { } } array ( 0 => \Suit::Hearts, 1 => \Suit::Diamonds, 2 => \Suit::Clubs, 3 => \Suit::Spades, ) Class [ <user> final class MyBool implements UnitEnum, BackedEnum ] { @@ /in/hColU 12-17 - Constants [3] { Constant [ public MyBool MyFalse ] { Object } Constant [ public MyBool MyTrue ] { Object } Constant [ public MyBool OtherTrue ] { Object } } - Static properties [0] { } - Static methods [3] { Method [ <internal, prototype UnitEnum> static public method cases ] { - Parameters [0] { } - Return [ array ] } Method [ <internal, prototype BackedEnum> static public method from ] { - Parameters [1] { Parameter #0 [ <required> string|int $value ] } - Return [ static ] } Method [ <internal, prototype BackedEnum> static public method tryFrom ] { - Parameters [1] { Parameter #0 [ <required> string|int $value ] } - Return [ ?static ] } } - Properties [2] { Property [ public protected(set) readonly string $name ] Property [ public protected(set) readonly int $value ] } - Methods [0] { } } Class [ <user> final class MyBool implements UnitEnum, BackedEnum ] { @@ /in/hColU 12-17 - Constants [3] { Constant [ public MyBool MyFalse ] { Object } Constant [ public MyBool MyTrue ] { Object } Constant [ public MyBool OtherTrue ] { Object } } - Static properties [0] { } - Static methods [3] { Method [ <internal, prototype UnitEnum> static public method cases ] { - Parameters [0] { } - Return [ array ] } Method [ <internal, prototype BackedEnum> static public method from ] { - Parameters [1] { Parameter #0 [ <required> string|int $value ] } - Return [ static ] } Method [ <internal, prototype BackedEnum> static public method tryFrom ] { - Parameters [1] { Parameter #0 [ <required> string|int $value ] } - Return [ ?static ] } } - Properties [2] { Property [ public protected(set) readonly string $name ] Property [ public protected(set) readonly int $value ] } - Methods [0] { } } array ( 0 => \MyBool::MyFalse, 1 => \MyBool::MyTrue, )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
42.77 ms | 417 KiB | 5 Q