1--TEST-- 2Internal enums 3--EXTENSIONS-- 4zend_test 5--FILE-- 6<?php 7 8var_dump($bar = ZendTestUnitEnum::Bar); 9var_dump($bar === ZendTestUnitEnum::Bar); 10var_dump($bar instanceof UnitEnum); 11 12var_dump($foo = zend_get_unit_enum()); 13var_dump($foo === ZendTestUnitEnum::Foo); 14 15var_dump(ZendTestUnitEnum::cases()); 16echo "\n"; 17 18var_dump($foo = ZendTestStringEnum::Foo); 19var_dump($foo instanceof BackedEnum); 20var_dump(ZendTestStringEnum::Foo->value); 21var_dump($bar = ZendTestStringEnum::from("Test2")); 22var_dump($bar === ZendTestStringEnum::Bar); 23var_dump(ZendTestStringEnum::tryFrom("Test3")); 24var_dump(ZendTestStringEnum::tryFrom(42)); 25var_dump(ZendTestStringEnum::tryFrom(43)); 26var_dump(ZendTestStringEnum::tryFrom(0)); 27var_dump(ZendTestStringEnum::cases()); 28 29var_dump($s = serialize($foo)); 30var_dump(unserialize($s)); 31var_dump(unserialize($s) === $foo); 32 33function test_int_enum(int|string $case) { 34 try { 35 var_dump(ZendTestIntEnum::from($case)); 36 } catch (\Error $e) { 37 echo get_class($e) . ': ' . $e->getMessage() . "\n"; 38 } 39 var_dump(ZendTestIntEnum::tryFrom($case)); 40} 41 42test_int_enum(1); 43test_int_enum('1'); 44test_int_enum(2); 45test_int_enum('2'); 46test_int_enum(-1); 47test_int_enum('-1'); 48 49?> 50--EXPECT-- 51enum(ZendTestUnitEnum::Bar) 52bool(true) 53bool(true) 54enum(ZendTestUnitEnum::Foo) 55bool(true) 56array(2) { 57 [0]=> 58 enum(ZendTestUnitEnum::Foo) 59 [1]=> 60 enum(ZendTestUnitEnum::Bar) 61} 62 63enum(ZendTestStringEnum::Foo) 64bool(true) 65string(5) "Test1" 66enum(ZendTestStringEnum::Bar) 67bool(true) 68NULL 69enum(ZendTestStringEnum::FortyTwo) 70NULL 71NULL 72array(4) { 73 [0]=> 74 enum(ZendTestStringEnum::Foo) 75 [1]=> 76 enum(ZendTestStringEnum::Bar) 77 [2]=> 78 enum(ZendTestStringEnum::Baz) 79 [3]=> 80 enum(ZendTestStringEnum::FortyTwo) 81} 82string(30) "E:22:"ZendTestStringEnum:Foo";" 83enum(ZendTestStringEnum::Foo) 84bool(true) 85enum(ZendTestIntEnum::Foo) 86enum(ZendTestIntEnum::Foo) 87enum(ZendTestIntEnum::Foo) 88enum(ZendTestIntEnum::Foo) 89ValueError: 2 is not a valid backing value for enum ZendTestIntEnum 90NULL 91ValueError: 2 is not a valid backing value for enum ZendTestIntEnum 92NULL 93enum(ZendTestIntEnum::Baz) 94enum(ZendTestIntEnum::Baz) 95enum(ZendTestIntEnum::Baz) 96enum(ZendTestIntEnum::Baz) 97