Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Iterator- und Iterationsimplementierung sowie PHP-Kenntnisse zur Nutzungsanalyse

PHP-Iterator- und Iterationsimplementierung sowie PHP-Kenntnisse zur Nutzungsanalyse

jacklove
Freigeben: 2023-04-01 20:16:02
Original
1861 Leute haben es durchsucht

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 Die Methode ist dieselbe, der Code lautet 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
*/
Nach dem Login kopieren

Wenn Sie komplexeres Verhalten implementieren müssen, können Sie es über implementieren ein iterator (Iterator)

//迭代器接口
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
*/
Nach dem Login kopieren

Artikel, die Sie interessieren könnten:

PHP-Tipps für den Betrieb von MongoDB zur Implementierung von add , Lösch-, Änderungs- und Prüffunktionen

Zusammenfassung allgemeiner Tipps zum Betrieb von Redis mit PHP

Analyse von PHP-Tipps zum Lesen und Schreiben von Excel-Dateien mit nativem PHP




Das obige ist der detaillierte Inhalt vonPHP-Iterator- und Iterationsimplementierung sowie PHP-Kenntnisse zur Nutzungsanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage