我只是想指出,您的类必须实际实现 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”,与预期相符
?>