我在访问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);
它可以很好地打印出阵列。
为什么我无法访问数组中的元素,即使我可以打印出数组?
答案 0 :(得分:2)
你是哪个PHP版本,这样的东西对我有用:
echo $Obj->{$tmp}[0]
在PHP上> = 5.1
我认为这背后的推理是因为$tmp[0]
在访问对象之前被翻译而不是翻译$tmp
,然后通过$tmp