【问题标题】:PHP: Arrays as AttributesPHP:数组作为属性
【发布时间】:2009-08-16 19:42:33
【问题描述】:

如果我有一个带有数组作为属性的对象,那么访问它的最简单方法是什么?

$obj->odp = array("ftw", "pwn", array("cool" => 1337));

//access "ftw"
$obj->odp->0

//access 1337
$obj->odp->2->cool

这似乎不起作用。是我做错了什么,还是我必须先将它分配给一个变量?

$arr = $obj->odp;

//access "ftw"
$arr[0]

//access 1337
$arr[2]["cool"]

【问题讨论】:

    标签: php arrays object attributes


    【解决方案1】:

    只能使用数组语法 ($array['key']) 访问数组,只能使用对象语法 ($object->property) 访问对象。

    仅对对象使用对象语法,仅对数组使用数组语法:

    $obj->odp[0]
    $obj->odp[2]['cool']
    

    【讨论】:

    • 您确定可以使用数组语法访问对象吗?我正在尝试这样做,并收到此错误:致命错误:无法在第 80 行的 C:\xampp\htdocs\CUMF3\sites\all\modules\results\results.module 中使用 stdClass 类型的对象作为数组
    【解决方案2】:

    这样做:

    $obj->odp[0]['cool']
    

    【讨论】:

      【解决方案3】:

      $obj->odp 是一个数组,所以$obj->odp[0] 读作“ftw”。没有像$obj->odp->0 这样的东西。

      【讨论】:

        猜你喜欢
        • 2011-04-25
        • 2022-01-08
        • 2011-08-26
        • 2012-02-13
        • 1970-01-01
        • 1970-01-01
        • 2011-08-24
        • 1970-01-01
        • 2011-09-16
        相关资源
        最近更新 更多