如何轻松访问对象的奇怪名称成员?

时间:2014-11-12 12:49:20

标签: php

只需考虑一下......

<?php

$phoo = json_decode( '{ "a-b": 2 }');

// causes "PHP Fatal error:  Cannot use object of type stdClass as array";
echo $phoo['a-b'];

// causes PHP Notice:  Use of undefined constant b - assumed 'b'
echo $phoo->a-b;

除了使用get_object_vars()或(array)之类的东西来转换它之外,有没有办法访问'a-b'的值?

2 个答案:

答案 0 :(得分:2)

要防止将-视为减号运算符,并尝试从属性b中减去名为$phoo->a的常量值,您需要执行

echo $phoo->{'a-b'};

答案 1 :(得分:0)

这是因为连字符,暗示substraction

尝试

 $photo->{'a-b'}