<?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 8.4.1 - 8.4.12
- 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,
)
- Output for 8.3.5 - 8.3.25
- 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 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 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 readonly string $name ]
Property [ public 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 readonly string $name ]
Property [ public readonly int $value ]
}
- Methods [0] {
}
}
array (
0 =>
\MyBool::MyFalse,
1 =>
\MyBool::MyTrue,
)
- Output for 8.1.30 - 8.1.33, 8.2.22 - 8.2.29
- Parse error: syntax error, unexpected identifier "OtherHearts", expecting "=" in /in/hColU on line 9
Process exited with code 255.
preferences:
43.15 ms | 416 KiB | 5 Q