2016-06-30 9 views
-1

私は、JSONライブラリを使ってphp上で私が以前見たことのない構文を持つ要素にアクセスできることに気付きました。

$jsonObject->{'myvar'}; // return the value of myvar on the jsonobject 

どのように動作しますか?

+2

私が知っている限り、すべての 'stdclass object'プロパティ、またはより単純に' object'プロパティで動作します。変数名やそのようなものにスペースがある場合は、通常、このような構文を使用しようとしています。 '$ object - > {" hello world "};' – briosheje

+1

あなたはどのような情報を求めていますか?実装されましたか?それを動かすコードを理解したいのですか、その特定の機能に関するドキュメントが必要ですか? – zzzzBov

+1

多くの場合、jsonインデックスには空白を入れることができるので、 '{}'を使うとデータにアクセスできます。それ以外の場合は '$ object-> my index'は動作しませんが、' $ object - > {'my index'} 'は – Matt

答えて

4

私はそれがJSONライブラリに内在しているとは思わない。

これは、呼び出す変数の名前を特定する別の方法です。たとえば、どの変数を呼び出すべきかを動的に決定したい場合に便利です。これは魔法の方法では非常に役立ちます。

$var->{"var_name"}は、$var->var_nameに相当します。あなたにもこのようなことを行うことができます

$key = "key_name"; 

var_dump($object->{$key}); 

あなたは、このようなドットやコンマなど無効文字をキーにもアクセスすることができます。

$key = "key.name.nice"; 

var_dump($object->{$key}); 
+1

+1しかし、空白のような "無効な"文字を持つプロパティにアクセスする必要があるときに特に便利だと指摘しておきましょう。ただ言って。 – briosheje

+0

間違いなく。私はそれを追加します、ありがとう。 – GiamPy