Antara muka PHP Iterable

PHPz
PHPzke hadapan
2023-08-20 14:49:09935semak imbas

PHP Iterable接口

Memperkenalkan antara muka

Iterator memanjangkan antara muka abstrak Boleh dilalui. PHP menyediakan beberapa iterator terbina dalam (dipanggil SPL iterator) untuk banyak fungsi biasa. Contohnya ArrayIterator, DirectoryIterator dll. Kelas pengguna yang melaksanakan antara muka Iterator harus melaksanakan kaedah abstrak yang ditakrifkan di dalamnya.

Syntax

Iterator extends Traversable {
   /* Methods */
   abstract public current ( void ) : mixed
   abstract public key ( void ) : scalar
   abstract public next ( void ) : void
   abstract public rewind ( void ) : void
   abstract public valid ( void ) : bool
}

Methods

Iterator::current — Mengembalikan elemen semasa

Iterator::key — Mengembalikan kunci elemen semasa

Iterator::next element — Beralih ke item berikutnya — Akan iterate Iterator memundurkan semula elemen pertama

Iterator::valid — Semak sama ada kedudukan semasa adalah sah

Apabila melaksanakan antara muka

IteratorAggregate

atau Iterator, mereka mesti disenaraikan sebelum nama mereka dalam klausa. Contoh Lelang

Dalam skrip PHP berikut, kelas yang melaksanakan antara muka mengandungi pembolehubah peribadi sebagai tatasusunan. Dengan melaksanakan kaedah abstrak iterator, kita boleh mengulangi tatasusunan menggunakan gelung

foreach

dan kaedah

next(). Contoh

<?php
class myIterator implements Iterator {
   private $index = 0;
   private $arr = array(10,20,30,40);
   public function __construct() {
      $this->index = 0;
   }
   public function rewind() {
      $this->index = 0;
   }
   public function current() {
      return $this->arr[$this->index];
   }
   public function key() {
      return $this->index;
   }
   public function next() {
      ++$this->index;
   }
   public function valid() {
      return isset($this->arr[$this->index]);
   }
}
?>

Menggunakan gelung

foreach

, kita boleh mengulangi sifat tatasusunan objek MyIterator

$it = new myIterator();
foreach($it as $key => $value) {
   echo "$key=>". $value ."</p><p>";
}
Lelaran juga boleh dilakukan dengan memanggil kaedah gelung next()

dalam seketika Sebelum memulakan gelung, pastikan untuk

memundurkan lelaran. Contoh

$it->rewind();
do {
   echo $it->key() . "=>" .$it->current() . "</p><p>";
   $it->next();
}
while ($it->valid());

Output

Dalam kedua-dua kes, traversal atas sifat tatasusunan menunjukkan hasil berikut

0=>10
1=>20
2=>30
3=>40

Atas ialah kandungan terperinci Antara muka PHP Iterable. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam