3v4l.org

run code in 300+ PHP versions simultaneously
<?php class U extends ArrayObject { public function __construct($input, $flags = 0) { parent::__construct($input, $flags); } //public $id; //public $name; } $a = ['id' => 123, 'name' => 'Me']; $o = (object)$a; var_dump($o); $ao0 = new ArrayObject($a); $ao1 = new ArrayObject($a, ArrayObject::STD_PROP_LIST); $ao2 = new ArrayObject($a, ArrayObject::ARRAY_AS_PROPS); $ao3 = new ArrayObject($a, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS); $ao3x = new ArrayObject($a, ArrayObject::STD_PROP_LIST & ArrayObject::ARRAY_AS_PROPS); $u0 = new U($a); $u1 = new U($a, ArrayObject::STD_PROP_LIST); $u2 = new U($a, ArrayObject::ARRAY_AS_PROPS); $u3 = new U($a, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS); $u3x = new U($a, ArrayObject::STD_PROP_LIST & ArrayObject::ARRAY_AS_PROPS); var_dump($ao0); var_dump($u0); echo '-----'; var_dump($ao0->name); var_dump($ao1->name); var_dump($ao2->name); var_dump($ao3->name); var_dump($ao3x->name); echo '---'; var_dump($ao0['name']); var_dump($ao1['name']); var_dump($ao2['name']); var_dump($ao3['name']); var_dump($ao3x['name']); echo '-----'; var_dump($u0->name); var_dump($u1->name); var_dump($u2->name); var_dump($u3->name); var_dump($u3x->name); echo '---'; var_dump($u0['name']); var_dump($u1['name']); var_dump($u2['name']); var_dump($u3['name']); var_dump($u3x['name']); echo "-----\n"; var_dump(is_array($o)); var_dump(is_array($ao2)); var_dump(is_array($u2)); echo "-----\n"; var_dump($o instanceof Iterator); var_dump($ao2 instanceof Iterator); var_dump($u2 instanceof Iterator);
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
object(stdClass)#1 (2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } object(U)#7 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } ----- Warning: Undefined property: ArrayObject::$name in /in/FlMUA on line 32 NULL Warning: Undefined property: ArrayObject::$name in /in/FlMUA on line 33 NULL string(2) "Me" string(2) "Me" Warning: Undefined property: ArrayObject::$name in /in/FlMUA on line 36 NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- Warning: Undefined property: U::$name in /in/FlMUA on line 49 NULL Warning: Undefined property: U::$name in /in/FlMUA on line 50 NULL string(2) "Me" string(2) "Me" Warning: Undefined property: U::$name in /in/FlMUA on line 53 NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- bool(false) bool(false) bool(false) ----- bool(false) bool(false) bool(false)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 object(stdClass)#1 (2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } object(U)#7 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } ----- Warning: Undefined property: ArrayObject::$name in /in/FlMUA on line 32 NULL Warning: Undefined property: ArrayObject::$name in /in/FlMUA on line 33 NULL string(2) "Me" string(2) "Me" Warning: Undefined property: ArrayObject::$name in /in/FlMUA on line 36 NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- Warning: Undefined property: U::$name in /in/FlMUA on line 49 NULL Warning: Undefined property: U::$name in /in/FlMUA on line 50 NULL string(2) "Me" string(2) "Me" Warning: Undefined property: U::$name in /in/FlMUA on line 53 NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- bool(false) bool(false) bool(false) ----- bool(false) bool(false) bool(false)
Output for 5.6.0 - 5.6.27, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.31, 7.4.0 - 7.4.33
object(stdClass)#1 (2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } object(U)#7 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } ----- Notice: Undefined property: ArrayObject::$name in /in/FlMUA on line 32 NULL Notice: Undefined property: ArrayObject::$name in /in/FlMUA on line 33 NULL string(2) "Me" string(2) "Me" Notice: Undefined property: ArrayObject::$name in /in/FlMUA on line 36 NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- Notice: Undefined property: U::$name in /in/FlMUA on line 49 NULL Notice: Undefined property: U::$name in /in/FlMUA on line 50 NULL string(2) "Me" string(2) "Me" Notice: Undefined property: U::$name in /in/FlMUA on line 53 NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- bool(false) bool(false) bool(false) ----- bool(false) bool(false) bool(false)
Output for 7.3.32 - 7.3.33
object(stdClass)#1 (2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } object(U)#7 (1) { ["storage":"ArrayObject":private]=> array(2) { ["id"]=> int(123) ["name"]=> string(2) "Me" } } -----NULL NULL string(2) "Me" string(2) "Me" NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" -----NULL NULL string(2) "Me" string(2) "Me" NULL ---string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" string(2) "Me" ----- bool(false) bool(false) bool(false) ----- bool(false) bool(false) bool(false)

preferences:
161.13 ms | 403 KiB | 188 Q