Cette fois, je vais vous apporter une explication détaillée des itérateurs PHP et comment utiliser les itérations. Quelles sont les précautions lors de l'utilisation des itérateurs et des itérations PHP. Voici des cas pratiques, jetons un coup d'oeil.
Le moteur orienté objet de PHP fournit une fonctionnalité très intelligente, c'est-à-dire que vous pouvez utiliser la méthode foreach()
pour récupérer toutes les propriétés d'un objet à travers une boucle, tout comme le tableau méthode, le code Comme suit :
class Myclass{ public $a = 'php'; public $b = 'onethink'; public $c = 'thinkphp'; } $myclass = new Myclass(); //用foreach()将对象的属性循环出来 foreach($myclass as $key.'=>'.$val){ echo '$'.$key.' = '.$val."<br/>"; } /*返回 $a = php $b = onethink $c = thinkphp */
Si vous avez besoin d'implémenter un comportement plus complexe, vous pouvez l'implémenter via un iterator
(itérateur)
//迭代器接口 interface MyIterator{ //函数将内部指针设置回数据开始处 function rewind(); //函数将判断数据指针的当前位置是否还存在更多数据 function valid(); //函数将返回数据指针的值 function key(); //函数将返回将返回当前数据指针的值 function value(); //函数在数据中移动数据指针的位置 function next(); } //迭代器类 class ObjectIterator implements MyIterator{ private $obj;//对象 private $count;//数据元素的数量 private $current;//当前指针 function construct($obj){ $this->obj = $obj; $this->count = count($this->obj->data); } function rewind(){ $this->current = 0; } function valid(){ return $this->current < $this->count; } function key(){ return $this->current; } function value(){ return $this->obj->data[$this->current]; } function next(){ $this->current++; } } interface MyAggregate{ //获取迭代器 function getIterator(); } class MyObject implements MyAggregate{ public $data = array(); function construct($in){ $this->data = $in; } function getIterator(){ return new ObjectIterator($this); } } //迭代器的用法 $arr = array(2,4,6,8,10); $myobject = new MyObject($arr); $myiterator = $myobject->getIterator(); for($myiterator->rewind();$myiterator->valid();$myiterator->next()){ $key = $myiterator->key(); $value = $myiterator->value(); echo $key.'=>'.$value; echo "<br/>"; } /*返回 0=>2 1=>4 2=>6 3=>8 4=>10 */
Je crois que vous avez maîtrisé la méthode après avoir lu le cas dans cet article , pour un contenu plus passionnant, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Explication détaillée des étapes pour utiliser l'algorithme de tri rapide PHP
Explication détaillée des étapes pour chargement de bibliothèques tierces dans Laravel
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!