我只想指出,你的类必须实际实现 Countable 接口,而不仅仅是定义一个 count 方法,才能使用 count($object) 并获得预期结果。例如,下面的第一个示例将无法按预期工作,而第二个将按预期工作。(正常的箭头函数访问器($object->count())将正常工作,但这不是关键点 :))
<?php
// 示例一,错误 :(
class CountMe
{
protected $_myCount = 3;
public function count()
{
return $this->_myCount;
}
}
$countable = new CountMe();
echo count($countable); // 结果为 "1",并非预期结果
// 示例二,正确 :)
class CountMe implements Countable
{
protected $_myCount = 3;
public function count()
{
return $this->_myCount;
}
}
$countable = new CountMe();
echo count($countable); // 结果为 "3",符合预期
?>