如何在php中访问名为变量的对象属性?


101

JSON编码的Google API返回了这样的对象

[updated] => stdClass Object
(
 [$t] => 2010-08-18T19:17:42.026Z
)

谁知道我该如何获取$t价值?

$object->$t 显然返回

注意:未定义的变量:t在/ usr / local / ...

致命错误:无法访问/ ....中的空属性

Answers:


219

由于您的媒体资源的名称是字符串'$t',因此您可以像这样访问它:

echo $object->{'$t'};

另外,您可以将属性的名称放在变量中,然后像这样使用它:

$property_name = '$t';
echo $object->$property_name;

您可以在repl.it上看到它们的实际作用:https ://repl.it/@jrunning/SpiritedTroubledWorkspace


1
如果仅使用“ echo $ object-> $ property_name”而不加引号怎么办。似乎可以使用,但是仅适用于更新的php版本吗?
拉米2015年

3
@Larry在OP的情况下需要使用引号,因为这$t 属性的名称,而不是包含属性名称的变量。
乔丹

2
四年后,我意识到我误读了@Lamy的评论。你说得对,拉米。如果的值$property_name是字符串,'$t'echo $object->$property_name工作正常。我已经更新了答案。谢谢和道歉!
乔丹(Jordan)



5

我正在使用php7,以下对我来说很好用:

class User {
    public $name = 'john';
}
$u = new User();

$attr = 'name';
print $u->$attr;

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.