我需要使用像$ foo-> $ bar-> $ car这样的对象,其中$ bar和$ car可以假设很多值。我怎么声明呢?
例如,我需要说:
$foo->{'0'}->{'a'} = 2;
$foo->{'0'}->{'b'} = 4;
$foo->{'1'}->{'a'} = 8;
修改 $ bar和$ car可以各自承担很多价值。
提前谢谢。
答案 0 :(得分:0)
与数组不同,PHP不会自动实例化"缺少"对象:
阵列:
php > var_dump($x);
PHP Notice: Undefined variable: x in php shell code on line 1
NULL
php > $x[1][2][3] = 'hi mom';
php > var_dump($x);
array(1) {
[1]=>
array(1) {
[2]=>
array(1) {
[3]=>
string(6) "hi mom"
}
}
}
对象:
php > var_dump($y);
PHP Notice: Undefined variable: y in php shell code on line 1
NULL
php > $y->x->y = 'hi dad';
PHP Warning: Creating default object from empty value in php shell code on line 1
你必须自己定义每个中间对象:
php > $y = new stdClass();
php > $y->x = new stdClass();
php > $y->x->z = new stdClass();
php > var_dump($y);
object(stdClass)#3 (1) {
["x"]=>
object(stdClass)#1 (1) {
["z"]=>
object(stdClass)#2 (0) {
}
}
}