3v4l.org

run code in 500+ PHP versions simultaneously
<?php class Foo { public function __construct( public readonly string $bar ){} } $foo = new Foo('bar'); var_dump($foo->bar); $arrayObject = new ArrayObject($foo); $arrayObject['bar'] = new \DateTimeImmutable("1986-08-20 midnight"); var_dump($foo->bar);
Output for 8.0.1 - 8.0.30
Parse error: syntax error, unexpected identifier "string", expecting variable in /in/gSWFF on line 6
Process exited with code 255.
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.34, 8.3.0 - 8.3.33, 8.4.1 - 8.4.24
string(3) "bar" object(DateTimeImmutable)#3 (3) { ["date"]=> string(26) "1986-08-20 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" }
Output for 8.5.0 - 8.5.9
string(3) "bar" Deprecated: ArrayObject::__construct(): Using an object as a backing array for ArrayObject is deprecated, as it allows violating class constraints and invariants in /in/gSWFF on line 14 object(DateTimeImmutable)#3 (3) { ["date"]=> string(26) "1986-08-20 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" }

preferences:
32.8 ms | 1143 KiB | 12 Q