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

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

Patricia Arquette
リリース: 2024-10-19 22:47:02
オリジナル
751 人が閲覧しました

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート