3v4l.org

run code in 300+ PHP versions simultaneously
<?php class ImmutableClass { public function __construct( public readonly OtherClass $readonly_property, ) {} } class OtherClass { public function __construct( public int $foo = 0, public ?string $bar = null, ) {} } $object = new OtherClass(); $object->foo = 500; $immutable_object = new ImmutableClass(readonly_property: $object); var_dump($immutable_object->readonly_property); $immutable_object->readonly_property->foo = 100; $immutable_object->readonly_property->bar = 'oops'; var_dump($immutable_object->readonly_property);
Output for git.master_jit, git.master
Warning: Module "Zend OPcache" is already loaded in Unknown on line 0 Warning: Zend OPcache: module registration failed! in Unknown on line 0 object(OtherClass)#1 (2) { ["foo"]=> int(500) ["bar"]=> NULL } object(OtherClass)#1 (2) { ["foo"]=> int(100) ["bar"]=> string(4) "oops" }

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
32.72 ms | 406 KiB | 5 Q