我有一个变量$ entry,设置为:
stdClass对象( [im:name] => stdClass对象 ( [label] =>惊人的断路器 ) 等
如何访问“Amazing Breaker”值?
我试图定义一个常量:
define("IMNAME", 'im:name');
但使用:
foreach ($json_output->feed->entry as $entry) {
if (isset($entry->IMNAME->label))
返回FALSE。
问题似乎是冒号。对于没有冒号的密钥,代码将返回TRUE。
答案 0 :(得分:32)
您可以将带有花括号的自由格式语法用于“特殊”属性名称:
if (isset($entry->{'im:name'}->label))
答案 1 :(得分:5)
答案 2 :(得分:1)
用大括号包裹IMNAME
:
if (isset($entry->{IMNAME}->label))
答案 3 :(得分:0)
这与PHP中的变量名不能包含冒号或双冒号这一事实有关。有关详细信息,请参阅https://php.net/manual/language.variables.basics.php。
$entry->{IMNAME}->label
工作?