web-dev-qa-db-ja.com

PHPで変数として名前が付けられたオブジェクトプロパティにアクセスするにはどうすればよいですか?

JSONでエンコードされたGoogle APIがこのようなオブジェクトを返しました

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

$t値にアクセスする方法を知っている人はいますか?

$object->$tは明らかに戻ります

Notice:未定義の変数:/ usr/local/...のt.

致命的なエラー:/ ....の空のプロパティにアクセスできません.

81
Flavio Copes

プロパティの名前は文字列'$t'、次のようにアクセスできます。

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

または、プロパティの名前を変数に入れて、次のように使用することもできます。

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

Repl.itでこれらの両方の動作を確認できます。 https://repl.it/@jrunning/SpiritedTroubledWorkspace

186
Jordan Running

やってみました:

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

私はphp7を使用していますが、次のようにうまく機能します。

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

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

正解(PHP7も同様):

$obj->{$field}
5
Vacilando