如何在PHP对象中访问数组

时间:2016-07-29 19:54:30

标签: php object

我知道这个问题有点n00b但我正在努力解决如何访问阵列的问题。[...]'在下面的PHP对象中。通常我没有问题,但因为我的密钥包含括号,即' ta []'我无法绕过如何访问它,我猜我想以某种方式逃脱它......?

我尝试了大多数组合,例如..

object->ta[]
object["ta[0]"]
object["ta[]"]
object->ta[0]

欢迎任何帮助!

object(stdClass)#6 (11) {
 ["tc"]=> string(4) "4500"
    ["tct"]=> string(1) "1"
    ["pd"]=> string(2) "AT"
    ["df"]=> string(10) "08/04/2016"
    ["dt"]=> string(10) "08/08/2016"
    ["nt"]=> string(1) "2"
    ["ta[]"]=> array(2)
       {
       [0]=> string(2) "40"
       [1]=> string(2) "35"
       }
    ["rc"]=> string(2) "US"
    ["rs"]=> string(2) "AR"
    ["cc"]=> string(2) "US"
    ["dfp"]=> string(10) "07/30/2016"
}

1 个答案:

答案 0 :(得分:3)

这应该这样做

$obj->{"ta[]"};

括号表示法(使用{})对于访问对象属性执行相同的操作,因为括号表示法(使用[])可以访问数组键:它允许您将属性名称定义为表达式。< / p>

在这种情况下,这只是一个简单的字符串,但可以是任何其他表达式。用一个(愚蠢的)例子来证明:

function ta() {
    return 'ta';
}

$obj = new stdClass;
$obj->{ta() . '[]'} = ['a', 'b'];
echo $obj->{"ta[]"}[1]; // b