函式名稱:SplHeap::valid()
適用版本:PHP 5 >= 5.3.0, PHP 7
函式描述:檢查堆的迭代器是否仍然有效
用法: bool SplHeap::valid ( void )
說明: SplHeap::valid() 函式用於檢查SplHeap物件的迭代器是否仍然有效。如果迭代器仍然有效,該函式將返回 true,否則返回 false。
示例:
class MyHeap extends SplHeap {
public function compare($value1, $value2) {
return $value1 - $value2;
}
}
$heap = new MyHeap();
$heap->insert(5);
$heap->insert(10);
$heap->insert(3);
$heap->rewind();
while ($heap->valid()) {
echo $heap->current() . " ";
$heap->next();
}
輸出: 3 5 10
在上面的示例中,我們建立了一個自定義的堆類MyHeap,重寫了compare()方法來定義堆的排序規則。然後我們向堆中插入了三個元素。接下來,我們使用rewind()方法將迭代器指標移動到堆的起始位置,並使用valid()方法來檢查迭代器的有效性。在迴圈中,我們使用current()方法輸出當前元素,並使用next()方法將迭代器指標向前移動。最終,我們得到了按照升序排列的堆元素輸出。