<?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