PHP如何声明像$foo->$bar->$car这样的对象


PHP how to declare object like $foo->$bar->$car

我需要使用一个像$foo->$bar->$car这样的对象,其中$bar和$car可以假设很多值。我怎样申报?

例如,我需要说:

$foo->{'0'}->{'a'} = 2;  
$foo->{'0'}->{'b'} = 4;  
$foo->{'1'}->{'a'} = 8;  
编辑:

$bar和$car可以各自假定很多值

提前感谢。

与数组不同,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) {
    }
  }
}