ホームページ  >  記事  >  バックエンド開発  >  PHP で stdClass オブジェクトのプロパティを正確にカウントするにはどうすればよいですか?

PHP で stdClass オブジェクトのプロパティを正確にカウントするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 22:47:02623ブラウズ

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

PHP での stdClass オブジェクトのプロパティのカウント

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。