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

Fla*_*pes 84 php json google-api

以JSON编码的Google API会返回此类对象

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

任何人都知道如何访问该$t值?

$object->$t 明显回归

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

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

Jor*_*ing 194

这应该工作:

echo $object->{'$t'};
Run Code Online (Sandbox Code Playgroud)

失败了:

$property_name = '$t';
echo $object->$property_name;
Run Code Online (Sandbox Code Playgroud)

  • 对于我刚刚使用这段代码:`$ obj - > {$ field}` (9认同)
  • @Larry在OP的情况下需要引号,因为`$ t`*是*属性的名称,而不是包含*属性名称的变量*. (3认同)
  • 四年后,我意识到我误读了@Lamy 的评论。你说得对,拉米。如果`$property_name` 的值是字符串`'$t'` 那么`echo $object->$property_name` 工作正常。我已经更新了我的答案。谢谢和道歉! (2认同)

Mac*_*cha 18

你有没有尝试过:

$t = '$t'; // Single quotes are important.
$object->$t;
Run Code Online (Sandbox Code Playgroud)


Vac*_*ndo 7

正确答案(也适用于PHP7)是:

$obj->{$field}
Run Code Online (Sandbox Code Playgroud)


oma*_*ari 5

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

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

$attr = 'name';
print $u->$attr;
Run Code Online (Sandbox Code Playgroud)