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

时间:2016-10-14 16:34:04

标签: php oop

我需要使用像$ foo-> $ bar-> $ car这样的对象,其中$ bar和$ car可以假设很多值。我怎么声明呢?

例如,我需要说:

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

修改 $ bar和$ car可以各自承担很多价值。

提前谢谢。

1 个答案:

答案 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) {
    }
  }
}