Cet article présente principalement l'utilisation de l'interface itérateur PHP Iterator, et analyse le concept, la fonction, la définition et l'utilisation de l'interface itérateur PHP Iterator sous forme d'exemples. Les amis dans le besoin peuvent se référer aux exemples de cet article
.Décrit l'utilisation de l'interface d'itérateur PHP Iterator. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
La fonction de l'interface PHP Iterator est de permettre à l'objet d'itérer les données internes à sa manière, afin qu'elles soient accessibles de manière cyclique. Le résumé de l'interface Iterator est le suivant :
Iterator extends Traversable { //返回当前索引游标指向的元素 abstract public mixed current ( void ) //返回当前索引游标指向的键 abstract public scalar key ( void ) //移动当前索引游标到下一元素 abstract public void next ( void ) //重置索引游标 abstract public void rewind ( void ) //判断当前索引游标指向的元素是否有效 abstract public boolean valid ( void ) }
Ce qui suit est un exemple simple pour démontrer l'utilisation d'Iterator :
<?php /** * 该类允许外部迭代自己内部私有属性$_test,并演示迭代过程 * * @author 疯狂老司机 */ class TestIterator implements Iterator { /* * 定义要进行迭代的数组 */ private $_test = array('dog', 'cat', 'pig'); /* * 索引游标 */ private $_key = 0; /* * 执行步骤 */ private $_step = 0; /** * 将索引游标指向初始位置 * * @see TestIterator::rewind() */ public function rewind() { echo '第'.++$this->_step.'步:执行 '.__METHOD__.'<br>'; $this->_key = 0; } /** * 判断当前索引游标指向的元素是否设置 * * @see TestIterator::valid() * @return bool */ public function valid() { echo '第'.++$this->_step.'步:执行 '.__METHOD__.'<br>'; return isset($this->_test[$this->_key]); } /** * 将当前索引指向下一位置 * * @see TestIterator::next() */ public function next() { echo '第'.++$this->_step.'步:执行 '.__METHOD__.'<br>'; $this->_key++; } /** * 返回当前索引游标指向的元素的值 * * @see TestIterator::current() * @return value */ public function current() { echo '第'.++$this->_step.'步:执行 '.__METHOD__.'<br>'; return $this->_test[$this->_key]; } /** * 返回当前索引值 * * @return key * @see TestIterator::key() */ public function key() { echo '第'.++$this->_step.'步:执行 '.__METHOD__.'<br>'; return $this->_key; } } $iterator = new TestIterator(); foreach($iterator as $key => $value){ echo "输出索引为{$key}的元素".":$value".'<br><br>'; } ?>
L'exemple ci-dessus affichera :
第1步:执行 TestIterator::rewind 第2步:执行 TestIterator::valid 第3步:执行 TestIterator::current 第4步:执行 TestIterator::key 输出索引为0的元素:dog 第5步:执行 TestIterator::next 第6步:执行 TestIterator::valid 第7步:执行 TestIterator::current 第8步:执行 TestIterator::key 输出索引为1的元素:cat 第9步:执行 TestIterator::next 第10步:执行 TestIterator::valid 第11步:执行 TestIterator::current 第12步:执行 TestIterator::key 输出索引为2的元素:pig 第13步:执行 TestIterator::next 第14步:执行 TestIterator::valid
Comme le montre l'exemple ci-dessus , si valid renvoie false, la boucle se termine.
Analyse de l'utilisation de l'interface d'itérateur d'agrégat PHP IteratorAggregate
Explication détaillée de l'utilisation de l'interface de détection PHP Traversable
Analyse de l'utilisation de l'interface de sérialisation personnalisée PHP Serialisable
Explication détaillée sur la façon d'utiliser l'accélération Opcache de PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!