Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Iteratoren und Implementierung der Iteration

PHP-Iteratoren und Implementierung der Iteration

不言
不言Original
2018-04-19 15:43:152478Durchsuche

Dieser Artikel stellt hauptsächlich PHP-Iteratoren sowie die Implementierung und Verwendung von Iteratoren vor. Er analysiert die Konzepte, Prinzipien, Definitionen und Verwendung von PHP-Iteratoren in Form von Beispielen.

Die Beispiele Beschreiben Sie in diesem Artikel die Implementierung und Verwendung von PHP-Iteratoren und -Iterationen. Geben Sie es wie folgt als Referenz an alle weiter:

Die objektorientierte Engine von PHP bietet eine sehr intelligente Funktion, das heißt, Sie können die Methode foreach() verwenden, um alle Attribute eines Objekts über eine Schleife abzurufen , genau wie ein Array Auf die gleiche Weise lautet der Code wie folgt:


class Myclass{
  public $a = 'php';
  public $b = 'onethink';
  public $c = 'thinkphp';
}
$myclass = new Myclass();
//用foreach()将对象的属性循环出来
foreach($myclass as $key.'=>'.$val){
  echo &#39;$&#39;.$key.&#39; = &#39;.$val."<br/>";
}
/*返回
  $a = php
  $b = onethink
  $c = thinkphp
*/


Wenn Sie komplexere Implementierungen benötigen Verhalten können Sie einen iterator (Iterator) übergeben, um


//迭代器接口
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.&#39;=>&#39;.$value;
  echo "<br/>";
}
/*返回
  0=>2
  1=>4
  2=>6
  3=>8
  4=>10
*/

Verwandte Empfehlungen zu implementieren:

[vordefinierte PHP-Schnittstelle 】Iterator

Rekursive Algorithmusimplementierung und iterative Algorithmusimplementierung für PHP-Schnellsortierungsprobleme

Anleitung Verwenden Sie die Iterator-Schnittstelle Iterator von PHP

Das obige ist der detaillierte Inhalt vonPHP-Iteratoren und Implementierung der Iteration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php endlichNächster Artikel:php endlich