簡介:
迭代器模式,是行為型的設計模式,
提供一中方法順序訪問一個聚合物件中的各個元素,而又不需要暴露該物件的內部表示,
適用場景:
除了學習,在PHP中幾乎沒有應用場景,
優點:
學習意義遠大于實際意義,
缺點:
實際開發中幾乎用不上,完全可以被更簡單的foreach,或者是所用框架內置的遍歷方案替代,
代碼:
//宣告一個迭代器類,并實作內置的迭代器介面
class MyIterator implements \Iterator {
private $data;
private $index;
//初始化資料
public function __construct($data) {
$this->data = https://www.cnblogs.com/phpphp/archive/2022/11/10/$data;
$this->index = 0;
}
//獲取當前資料
public function current() {
return $this->data[$this->index] ?? null;
}
//移動指標
public function next() {
++ $this->index;
}
//獲取當前位置
public function key() {
return $this->index;
}
//通過數量判斷指標的位置是否合法
public function valid() {
return $this->index < count($this->data);
}
//重置指標到開始位置
public function rewind() {
$this->data = 0;
}
}
//呼叫端================================================================
//是可以通過一些PHP陣列的方式去迭代關聯陣列,不過確實永不上
$my_iterator = new MyIterator(['one', 'two', 'three', 'four', 'five']);
while($my_iterator->valid()) {
echo $my_iterator->current() . PHP_EOL;
$my_iterator->next();
}
$my_iterator->rewind();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/530546.html
標籤:其他
上一篇:Java代碼塊運行順序細節闡述
下一篇:Java例外
