Как я могу получить доступ к свойству объекта, названного как переменная в php? - PullRequest
79 голосов
/ 18 августа 2010

API Google, закодированные в JSON, вернули такой объект, как этот

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

Кто-нибудь знает, как я могу получить доступ к значению $t?

$object->$t, очевидно, возвращает

Примечание: неопределенная переменная: t в /usr/local/...

Неустранимая ошибка: невозможно получить доступ к пустому свойству в /....

Ответы [ 4 ]

182 голосов
/ 18 августа 2010

Поскольку именем вашей собственности является строка '$t', вы можете получить к ней доступ следующим образом:

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

Кроме того, вы можете поместить имя свойства в переменную и использовать его следующим образом:

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

Вы можете увидеть оба из них в действии на repl.it: https://repl.it/@jrunning/SpiritedTroubledWorkspace

18 голосов
/ 18 августа 2010

Вы пробовали:

$t = '$t'; // Single quotes are important.
$object->$t;
5 голосов
/ 23 июня 2017

Я использую php7, и у меня отлично работает следующее:

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

$attr = 'name';
print $u->$attr;
4 голосов
/ 10 января 2019

Правильный ответ (также для PHP7):

$obj->{$field}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...