web-dev-qa-db-fra.com

Comment puis-je accéder à une propriété d'objet nommée comme variable dans php?

Une API Google encodée en JSON a renvoyé un objet tel que celui-ci

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

Tout le monde sait comment accéder au $t valeur?

$object->$t revient évidemment

Remarque: variable non définie: t dans/usr/local/...

Erreur fatale: impossible d'accéder à une propriété vide dans/....

81
Flavio Copes

Étant donné que le nom de votre propriété est la chaîne '$t', vous pouvez y accéder comme ceci:

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

Alternativement, vous pouvez mettre le nom de la propriété dans une variable et l'utiliser comme ceci:

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

Vous pouvez voir les deux en action sur repl.it: https://repl.it/@jrunning/SpiritedTroubledWorkspace

186
Jordan Running

As-tu essayé:

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

J'utilise php7 et les choses suivantes me conviennent:

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

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

La bonne réponse (également pour PHP7) est:

$obj->{$field}
5
Vacilando