PHPで変数として指定されたオブジェクトプロパティにアクセスするにはどうすればよいですか?


101

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

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

誰でも私が$t値にアクセスする方法を知っていますか?

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

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

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

回答:


219

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

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

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

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

あなたはrepl.it上のアクションでこれらの両方を見ることができます:https://repl.it/@jrunning/SpiritedTroubledWorkspace


1
引用符なしで単に「echo $ object-> $ property_name」を使用するとどうなるでしょうか。動作しているようですが、それは新しいバージョンのphpのみに有効ですか?
ラミー

3
ので、引用符が必要とされているOPの場合@Larry $t あるプロパティの名前ではなく、変数含むプロパティの名前を。
ジョーダン

2
4年後、@ Lamyのコメントを誤解していることに気付きました。正解です、ラミー。値が場合は$property_name、文字列で'$t'、その後echo $object->$property_name罰金は動作します。回答を更新しました。感謝とお詫び!
ジョーダン、



5

私はphp7を使用しており、次のように動作します。

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

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

0

これはphp 5および7で動作します

$props=get_object_vars($object);
echo $props[$t];
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.