无法直接访问StdClass对象内的数组?

时间:2014-09-15 00:49:09

标签: php arrays stdclass

我在访问StdObject内部的数组时遇到问题。该对象在我的调试器中看起来像这样:

$obj = {stClass}[9]
  1234 = {array} [28]
    0 = "some text"
    1 = false
    2 = true
    3 = ""
  ...

似乎我应该能够像这样访问数组中的元素:

$tmp = 1234;
echo $Obj->$tmp[0]

但我得到Notice: Undefined property: stdClass::$5

然而,当我这样做时:

print_r($Obj->$tmp);

它可以很好地打印出阵列。

为什么我无法访问数组中的元素,即使我可以打印出数组?

1 个答案:

答案 0 :(得分:2)

你是哪个PHP版本,这样的东西对我有用:

echo $Obj->{$tmp}[0]

在PHP上> = 5.1

我认为这背后的推理是因为$tmp[0]在访问对象之前被翻译而不是翻译$tmp,然后通过$tmp

访问对象