Lorsque vous travaillez avec des objets créés à partir de données JSON à l'aide de json_decode, vous pouvez rencontrer un problème où la fonction count() renvoie une valeur incorrecte alors que l'objet possède de nombreuses propriétés.
Considérons l'exemple suivant :
[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 ) ) )
L'exécution du nombre ($obj) sur cet objet renverrait 1 , même s'il y a 30 propriétés. En effet, count() est conçu pour compter le nombre d'index dans un tableau, pas les propriétés d'un objet.
Pour résoudre ce problème, convertissez l'objet en tableau comme ceci :
$total = count((array)$obj);
La conversion de l'objet en tant que tableau force count() à évaluer le nombre de propriétés au lieu d'index. Dans cet exemple, $total refléterait avec précision le nombre de 30 propriétés.
Cette technique de diffusion n'est pas toujours applicable. Cependant, pour les objets stdClass simples comme celui fourni, il devrait suffire d'obtenir le nombre de propriétés correct.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!