使用 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中文网其他相关文章!