Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中访问名为变量的对象属性?_Php_Json_Google Api - Fatal编程技术网

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

如何在php中访问名为变量的对象属性?,php,json,google-api,Php,Json,Google Api,用JSON编码的Google API返回如下对象 [updated] => stdClass Object ( [$t] => 2010-08-18T19:17:42.026Z ) 有人知道我如何访问$t值吗 $object->$t显然返回 注意:未定义的变量:tin/usr/local/ 致命错误:无法访问/…中的空属性 由于属性的名称是字符串“$t”,因此可以按如下方式访问它: echo $object->{'$t'}; $property_name = '$t';

用JSON编码的Google API返回如下对象

[updated] => stdClass Object
(
 [$t] => 2010-08-18T19:17:42.026Z
)
有人知道我如何访问
$t
值吗

$object->$t
显然返回

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

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


由于属性的名称是字符串
“$t”
,因此可以按如下方式访问它:

echo $object->{'$t'};
$property_name = '$t';
echo $object->$property_name;
或者,您可以将属性的名称放入变量中,并按如下方式使用:

echo $object->{'$t'};
$property_name = '$t';
echo $object->$property_name;
您可以在repl.it上看到这两个选项的作用:

您是否尝试过:

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

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

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

$attr = 'name';
print $u->$attr;
正确答案(也适用于PHP7)是:


这适用于PHP5和PHP7

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

如果只使用“echo$object->$property_name”而不使用引号会怎么样。似乎有效,但它仅适用于较新的php版本吗?@Larry在OP中需要引号,因为
$t
是属性名称,而不是包含属性名称的变量。四年后,我意识到我误读了@Lamy comment。你说得对,拉米。如果
$property\u name
的值是字符串
'$t'
,则
echo$object->$property\u name
可以正常工作。我已经更新了我的答案。谢谢和道歉!你好我可以用这个答案,但只能用双引号,@JordanRunning-你确定用单引号是正确的吗?有记录的行为:有一些重要的注释,请阅读;)如果变量只是属性名的一部分,该怎么办?例如,有没有一种方法可以像
$obj->{“$field”{u id'}
这样做?刚刚发现,使用
$obj->{“{$field}”{id'}
这是绝对可能的。看起来很可怕,但它100%有效。