1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00
Files
archived-php-src/ext/reflection/tests/ReflectionEnum_getCase.phpt
Ilija Tovilo 269c8dac1d Implement enums
RFC: https://wiki.php.net/rfc/enumerations

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>

Closes GH-6489.
2021-03-17 19:08:03 +01:00

51 lines
1.0 KiB
PHP

--TEST--
ReflectionEnum::getCases()
--FILE--
<?php
enum Enum_ {
case Foo;
const Bar = self::Foo;
}
enum IntEnum: int {
case Foo = 0;
const Bar = self::Foo;
}
function test(string $enumName, string $caseName) {
try {
$reflectionEnum = new ReflectionEnum($enumName);
var_dump($reflectionEnum->getCase($caseName));
} catch (Throwable $e) {
echo get_class($e) . ': ' . $e->getMessage() . "\n";
}
}
test(Enum_::class, 'Foo');
test(Enum_::class, 'Bar');
test(Enum_::class, 'Baz');
test(IntEnum::class, 'Foo');
test(IntEnum::class, 'Bar');
test(IntEnum::class, 'Baz');
?>
--EXPECT--
object(ReflectionEnumUnitCase)#2 (2) {
["name"]=>
string(3) "Foo"
["class"]=>
string(5) "Enum_"
}
ReflectionException: Enum_::Bar is not a case
ReflectionException: Case Enum_::Baz does not exist
object(ReflectionEnumBackedCase)#2 (2) {
["name"]=>
string(3) "Foo"
["class"]=>
string(7) "IntEnum"
}
ReflectionException: IntEnum::Bar is not a case
ReflectionException: Case IntEnum::Baz does not exist