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
Libérer: 2024-10-19 22:47:02
original
754 Les gens l'ont consulté

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
                    )

            )
     )
Copier après la connexion

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);
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal