PHP で count() 関数を使用して stdClass オブジェクトのプロパティをカウントすると、必ずしも予期した結果が返されるとは限りません。 count() 関数は、主に配列の要素をカウントするように設計されています。
stdClass オブジェクトのプロパティを正確にカウントするには、(array)$obj を使用してオブジェクトを配列にキャストできます。この変換により、オブジェクトのプロパティに対応するキーと値を含む配列が作成されます。
次の stdClass オブジェクトを考えてみましょう。これは Twitter から取得した毎日の傾向データを表します:
<code class="php">$trends = json_decode('{ "trends": { "2009-08-21 11:05": [ { "query": "Follow Friday", "name": "Follow Friday" }, ... // Additional trend data ] } }');</code>
このオブジェクトに count($trends) を使用すると、オブジェクトには 30 個のプロパティがあるため、予期した結果 30 が得られない可能性があります。
代わりに、オブジェクトを配列にキャストしてから、要素:
<code class="php">$total = count((array)$trends);</code>
このアプローチでは、$trends オブジェクトのプロパティが正確にカウントされ、正しい値 30 が得られます。
オブジェクトを配列としてキャストするには制限があることに注意してください。特定の状況。ただし、この例のような単純な stdClass オブジェクトの場合は、プロパティをカウントするための便利な方法が提供されます。
以上がPHP で stdClass オブジェクトのプロパティを正確にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。