PHP で count() 関数を使用して stdClass オブジェクトのプロパティをカウントすると、必ずしも予期した結果が返されるとは限りません。 count() 関数は、主に配列の要素を数えるように設計されています。
stdClass オブジェクトのプロパティを正確に数えるには、(array)$obj を使用してそれを配列にキャストできます。この変換により、オブジェクトのプロパティに対応するキーと値を含む配列が作成されます。
Twitter から取得した毎日のトレンド データを表す次の stdClass オブジェクトについて考えてみましょう:
$trends = json_decode('{
"trends": {
"2009-08-21 11:05": [
{
"query": "Follow Friday",
"name": "Follow Friday"
},
... // Additional trend data
]
}
}');
このオブジェクトに count($trends) を使用すると、オブジェクトには 30 個のプロパティがあるため、予期した結果 30 が得られない可能性があります。
代わりに、オブジェクトをキャストしてください。配列に変換して要素をカウントします:
$total = count((array)$trends);
このアプローチでは、$trends オブジェクトのプロパティを正確にカウントします。正しい値は 30 です。
オブジェクトを配列としてキャストすると、特定の状況では制限がある可能性があることに注意してください。ただし、この例のような単純な stdClass オブジェクトの場合は、そのプロパティをカウントするための便利な方法が提供されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3