我知道这个问题有点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"
}
答案 0 :(得分:3)
这应该这样做
$obj->{"ta[]"};
括号表示法(使用{}
)对于访问对象属性执行相同的操作,因为括号表示法(使用[]
)可以访问数组键:它允许您将属性名称定义为表达式。< / p>
在这种情况下,这只是一个简单的字符串,但可以是任何其他表达式。用一个(愚蠢的)例子来证明:
function ta() {
return 'ta';
}
$obj = new stdClass;
$obj->{ta() . '[]'} = ['a', 'b'];
echo $obj->{"ta[]"}[1]; // b