爲json_decode的語法是:PHP json_decode:對象到關聯數組
mixed json_decode (string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]])
注意第二參數$assoc
其是可選的,默認爲false。 當此參數爲true
時,json_decode
將對象轉換爲關聯數組。
我的問題是: 是否有每個案例你會不是想要將返回的對象轉換爲關聯數組?
爲json_decode的語法是:PHP json_decode:對象到關聯數組
mixed json_decode (string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]])
注意第二參數$assoc
其是可選的,默認爲false。 當此參數爲true
時,json_decode
將對象轉換爲關聯數組。
我的問題是: 是否有每個案例你會不是想要將返回的對象轉換爲關聯數組?
當要它轉換爲對象...
在PHP如果函數返回一個關聯數組,你不能直接訪問其成員爲Foo()[「XXX」]。但是,如果它返回一個對象,你可以訪問成員爲foo() - > xxx。
雖然這不再是真實的,它是當這個問題被張貼(當'json_decode()'寫),所以它是默認的一個很好的解釋值。 – 2017-03-14 17:14:43
就我個人而言,我總是會要求一個關聯數組,並且比$ assoc = false時返回的對象更容易處理。
但我可以說我已經看到了(主要是各種Web服務客戶端庫)大多數其他人的代碼已經使用json_decode與$ assoc命令=虛假和對象,而不是關聯數組。我認爲這主要是一個偏好問題,因爲我沒有看到選擇某種方式的特別強烈的理由。
對不起,非應答:-)
以我oppinion其一種方式來強調列表之間(在由數字數組表達的PHP)和一個實體(對象)之間的差。這可能更具可讀性,因爲可以讀取使用的訪問器([]
或->
)訪問哪種數據。
你需要通過與真實值一個額外的參數。 json_decode($ p,true);
@Adrian這是關於PHP,而不是Javascript。 – dkamins 2011-06-06 19:00:43
我會添加自定義方法來允許序列化和deserialisation(如Serializable接口)的JSON。這允許從對象的json和json中正確構造對象。 – Arend 2011-06-06 19:28:20
@dkamins啊,愚蠢的我...謝謝指正:) – 2011-06-08 09:00:25