Maison >développement back-end >tutoriel php >Comment compter avec précision les propriétés d'un objet stdClass en PHP ?

Comment compter avec précision les propriétés d'un objet stdClass en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 22:47:02784parcourir

How to Accurately Count Properties of a stdClass Object in PHP?

Comptage des propriétés d'un objet stdClass en PHP

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.

Le problème

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.

La solution

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.

Remarque

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn