我想指出的是,你的類別必須實際實作 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",符合預期
?>