使用json_decode 處理從JSON 資料建立的物件時,您可能會遇到count() 函數傳回的問題儘管物件具有許多屬性,但值不正確。
考慮以下範例:
[trends] => stdClass Object ( [2009-08-21 11:05] => Array ( [0] => stdClass Object ( [query] => "Follow Friday" [name] => Follow Friday ) ... [19] => stdClass Object ( [query] => H1N1 [name] => H1N1 ) ) )
在此物件上執行 count($obj) 會傳回 1 ,即使有 30 個屬性。這是因為 count() 旨在計算數組中索引的數量,而不是物件的屬性。
要解決此問題,請將物件轉換為陣列像這樣:
$total = count((array)$obj);
將物件轉換為陣列會強制count() 計算屬性的數量而不是索引的數量。在此範例中,$total 將準確反映 30 個屬性的計數。
此轉換技術可能並不總是適用。然而,對於像所提供的那樣簡單的 stdClass 對象,應該足以獲取正確的屬性計數。
以上是如何在 PHP 中準確統計 stdClass 物件的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!