Iterator 패턴내부를 알지 못한 채 집계 객체의 내부 요소를 순회합니다. 기존 프로그래밍 패턴과 비교할 때 Iterator 패턴은 순회 요소의 모든 작업을 숨길 수 있습니다.
<?php /* * 迭代器模式 */ class All implements \Iterator { protected $ids; protected $index; public function __construct($data) { $this->ids = $data; } public function current() //获取当前的元素 { return $this->ids[$this->index]; } public function next() //获取下一个元素 { $this->index++; } public function valid() //验证当下是否还有下一个元素 { return $this->index < count($this->ids); } public function rewind() //重置迭代器指针 { $this->index = 0; } public function key() //迭代器指针的位置 { return $this->index; } } $arr = ['1', '2', '4']; //客户端 $users = new All($arr); foreach ($users as $user) { var_dump($user); }
Iterator 패턴은 매우 자주 사용되는 디자인 패턴입니다. . 반복자를 도입하면 데이터 순회 기능을 집계 개체에서 분리할 수 있습니다. 집계 개체는 데이터 저장만 담당하고, 데이터 순회는 반복자에 의해 완료됩니다. PHP 이터레이터 패턴
PHP 변수 참조 PHP 이터레이터 패턴(SPL 구현 참고)
위 내용은 PHP 디자인 패턴의 반복자 패턴에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!