3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace GetObjectVars81; function assertType($_, $a) { var_dump($a); } enum Suit { case Hearts; case Diamonds; case Clubs; case Spades; } enum SuitBacked: string { case Hearts = 'H'; case Diamonds = 'D'; case Clubs = 'C'; case Spades = 'S'; } function check(Suit $suit, SuitBacked $backed): void { assertType('array{a: int, b: string}', get_object_vars($suit)); assertType('array{a: int, b: string}|array{one: int, three: bool}', get_object_vars($backed)); } check(Suit::Hearts, SuitBacked::Diamonds);
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.5 - 8.3.27, 8.4.3 - 8.4.14
array(1) { ["name"]=> string(6) "Hearts" } array(2) { ["name"]=> string(8) "Diamonds" ["value"]=> string(1) "D" }
Output for 8.0.1 - 8.0.28
Parse error: syntax error, unexpected identifier "Suit" in /in/6hV36 on line 9
Process exited with code 255.

preferences:
71.18 ms | 407 KiB | 5 Q