2016-06-30 78 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 - > {'我的索引'}'將會工作 – 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