Heim >Backend-Entwicklung >PHP-Tutorial >Wie zähle ich Eigenschaften eines stdClass-Objekts in PHP genau?
Beim Arbeiten mit Objekten, die aus JSON-Daten mit json_decode erstellt wurden, kann es zu einem Problem kommen, bei dem die Funktion count() zurückkehrt ein falscher Wert, obwohl das Objekt über zahlreiche Eigenschaften verfügt.
Betrachten Sie das folgende Beispiel:
[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 ) ) )
Das Ausführen von count($obj) für dieses Objekt würde 1 zurückgeben , obwohl es 30 Eigenschaften gibt. Dies liegt daran, dass count() darauf ausgelegt ist, die Anzahl der Indizes in einem Array zu zählen, nicht die Eigenschaften eines Objekts.
Um dieses Problem zu beheben, wandeln Sie das Objekt in ein Array um etwa so:
$total = count((array)$obj);
Das Umwandeln des Objekts in ein Array zwingt count() dazu, die Anzahl der Eigenschaften anstelle von Indizes auszuwerten. In diesem Beispiel würde $total die Anzahl von 30 Eigenschaften genau widerspiegeln.
Diese Casting-Technik ist möglicherweise nicht immer anwendbar. Für einfache stdClass-Objekte wie das bereitgestellte sollte es jedoch ausreichen, die richtige Eigenschaftsanzahl zu erhalten.
Das obige ist der detaillierte Inhalt vonWie zähle ich Eigenschaften eines stdClass-Objekts in PHP genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!