Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ciri lanjutan PHP: penggunaan hebat penjana dan iterator

Ciri lanjutan PHP: penggunaan hebat penjana dan iterator

WBOY
WBOYasal
2024-06-01 20:44:00979semak imbas

Jawapan: Penjana dan iterator ialah fungsi dan objek khas yang boleh menjana nilai satu demi satu tanpa menyimpan keseluruhan set data. Penjana: Menghasilkan satu siri nilai, satu nilai untuk setiap panggilan Iterator: Menyediakan kaedah untuk mengakses elemen koleksi, dan menjana elemen semasa melintasi pertempuran praktikal: Digunakan untuk halaman, menjana set data halaman demi halaman, tanpa menyimpan keseluruhan data ditetapkan dalam ingatan.

Ciri lanjutan PHP: penggunaan hebat penjana dan iterator

Ciri Termaju PHP: Penggunaan Ajaib Penjana dan Leter

Penjana

Penjana ialah fungsi khas yang digunakan untuk menjana satu siri nilai. Tidak seperti fungsi biasa, penjana boleh menghasilkan nilai pada setiap panggilan tanpa menyimpan keseluruhan tatasusunan nilai dalam ingatan.

function numbersGenerator() {
  for ($i = 1; $i <= 10; $i++) {
    yield $i;
  }
}

foreach (numbersGenerator() as $number) {
  echo $number . "\n";
}

Iterator

Iterator ialah objek yang menyediakan cara untuk mengakses elemen dalam koleksi. Seperti penjana, iterator boleh menjana elemen semasa melelaran melalui koleksi tanpa menyimpan keseluruhan koleksi dalam ingatan.

class NumberIterator implements Iterator {
  private $start;
  private $end;
  private $current;

  public function __construct($start, $end) {
    $this->start = $start;
    $this->end = $end;
    $this->current = $start;
  }

  public function rewind() {
    $this->current = $this->start;
  }

  public function current() {
    return $this->current;
  }

  public function key() {
    return $this->current;
  }

  public function next() {
    $this->current++;
  }

  public function valid() {
    return $this->current <= $this->end;
  }
}

$iterator = new NumberIterator(1, 10);

foreach ($iterator as $number) {
  echo $number . "\n";
}

Kes praktikal: Penombor

Penjana dan iterator sangat sesuai untuk senario paging. Dengan menggunakan penjana atau iterator, kami boleh menjana halaman set data mengikut halaman tanpa menyimpan keseluruhan set data dalam ingatan.

rreeee

Atas ialah kandungan terperinci Ciri lanjutan PHP: penggunaan hebat penjana dan iterator. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn