FilterIterator::accept()
是一個用來過濾迭代器元素的方法。它用於確定迭代器是否接受當前元素的條件。
用法:
bool FilterIterator::accept ( void )
引數: 該方法沒有引數。
返回值: 返回一個布林值,表示當前迭代器元素是否被接受。
示例:
假設我們有一個陣列迭代器,並且我們想要過濾掉所有小於 5 的元素,可以使用 FilterIterator::accept()
方法來實現:
class NumberFilter extends FilterIterator {
public function accept() {
return $this->current() >= 5; // 只接受大於等於 5 的元素
}
}
$numbers = new ArrayIterator([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$filteredNumbers = new NumberFilter($numbers);
foreach ($filteredNumbers as $number) {
echo $number . " "; // 輸出:5 6 7 8 9
}
在上面的示例中,我們建立了一個繼承自 FilterIterator
的自定義類 NumberFilter
,並重寫了 accept()
方法。在 accept()
方法中,我們使用 current()
方法獲取當前迭代器元素的值,並返回一個布林值以決定是否接受該元素。然後,我們使用 NumberFilter
類建立了一個新的過濾迭代器 $filteredNumbers
,並透過 foreach
迴圈遍歷過濾後的結果。輸出結果只包含大於等於 5 的元素。