【问题标题】:Can't directly access array inside of StdClass object?不能直接访问 StdClass 对象内部的数组?
【发布时间】:2014-09-15 00:49:08
【问题描述】:

我在访问 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);

它可以很好地打印出数组。

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

【问题讨论】:

    标签: php arrays stdclass


    【解决方案1】:

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

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

    在 PHP >= 5.1

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

    【讨论】:

    • 这对我有用。我以前从未遇到过这种行为,这似乎很奇怪。这是 PHP 的错误吗?
    • @Nate 我不会说这是 PHP 的错误,只是语法的工作方式。
    猜你喜欢
    • 2020-06-28
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多