이것은 내장된 인터페이스PHP의 Iterator에 관한 것입니다. PHP5는 인터페이스를 지원하기 시작하고 내장된 Iterator 인터페이스를 갖습니다. A 클래스를 정의하고 Iterator 인터페이스를 구현하면 클래스객체는 ZEND_ITER_OBJECT이고 그렇지 않으면 ZEND_ITER_PLAIN_OBJECT입니다.
ZEND_ITER_PLAIN_OBJECT 클래스의 경우 foreach는 HASH_OF를 통해 객체의 기본값을 가져옵니다. Attributearray를 수행한 다음 해당 배열에 대해 foreach를 수행합니다.
ZEND_ITER_OBJECT 클래스 개체의 경우 해당 개체가 구현한 Iterator 인터페이스 관련 함수를 호출하여 foreach를 수행합니다. , 이에 대한 필기 시험 문제의 경우 다음과 같이 답변할 수 있습니다.
<?php class sample implements Iterator { private $_items = array(1,2,3,4,5,6,7); public function __construct() { ;//void } public function rewind() { reset($this->_items); } public function current() { return current($this->_items); } public function key() { return key($this->_items); } public function next() { return next($this->_items); } public function valid() { return ( $this->current() !== false ); } } $sa = new sample(); foreach($sa as $key => $val){ print $key . "=>" .$val; } ?>
위 내용은 PHP 클래스의 Iterator 패턴 샘플 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!