3v4l.org

run code in 300+ PHP versions simultaneously
<?php class class_a { public function __construct( private readonly string $foo, ) {} } class class_b extends class_a { public function __construct( string $foo, public readonly string $bar, ) { parent::__construct($foo); // no really needed here. } } class class_c { public function __construct( private readonly string $foo, public readonly string $bar, ) { } } $b = new class_b('foo_value', 'bar_value'); $c = new class_c('foo_value', 'bar_value'); var_dump(serialize($b), serialize($c));
Output for 8.1.0 - 8.1.34, 8.2.22 - 8.2.30, 8.3.5 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
string(80) "O:7:"class_b":2:{s:12:"class_afoo";s:9:"foo_value";s:3:"bar";s:9:"bar_value";}" string(80) "O:7:"class_c":2:{s:12:"class_cfoo";s:9:"foo_value";s:3:"bar";s:9:"bar_value";}"
Output for 8.0.1 - 8.0.17
Parse error: syntax error, unexpected identifier "string", expecting variable in /in/Na35o on line 5
Process exited with code 255.
Output for 7.4.0 - 7.4.28
Parse error: syntax error, unexpected 'private' (T_PRIVATE), expecting variable (T_VARIABLE) in /in/Na35o on line 5
Process exited with code 255.

preferences:
69.45 ms | 938 KiB | 4 Q