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

用 JSON 编码的 GoogleAPI 返回这样的对象

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

有人知道如何访问 $t值吗?

$object->$t显然回来了

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

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

85517 次浏览

因为属性的名称是字符串 '$t',所以您可以这样访问它:

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

或者,您可以将属性的名称放在一个变量中,并像下面这样使用它:

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

You can see both of these in action on repl.it: https://repl.it/@jrunning/SpiritedTroubledWorkspace

你有没有试过:

$t = '$t'; // Single quotes are important.
$object->$t;

我使用的是 php7,下面的代码对我来说很好用:

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


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

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

$obj->{$field}

这对第五和第七阶段有效

$props=get_object_vars($object);
echo $props[$t];