Iterable dalam PHP

I

Apakah Iterable dalam PHP?

Ingat kembali tutorial gelung dalam siri PHP ini dan pergi ke gelung foreach dengan tepat. Dalam artikel ini, anda akan mempelajari iterables dalam PHP dalam pautan dengan gelung foreach.

  • Iterables ialah sebarang nilai yang diterima oleh setiap gelung dan boleh diulang.
  • PHP 7.1 memperkenalkan jenis pseudo-data ini dan ia boleh digunakan sebagai fungsi jenis data pulangan. Juga, fungsi boleh menerima iterables sebagai hujahnya.

Bagaimana untuk menggunakan Iterables dalam PHP?

berulang kali kata kunci mentakrifkan jenis hujah atau jenis pengembalian fungsi harus menjadi nilai yang boleh diubah. Lihat contoh berikut.

Contoh

<?php
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

$arr = ["a", "b", "c"];
printIterable($arr);
?>
  • Dalam contoh di atas. kami mencipta fungsi yang menerima beberapa hujah. Kami menentukan hujah mesti boleh lelaran menggunakan berulang kali kata kunci.
  • Sekarang, jika kita memanggil fungsi ini dan memberikan nilai yang tidak boleh diulang sebagai hujah fungsi, ia akan membuang ralat.
  • Jadi, iterables pastikan untuk menyuapkan nilai yang boleh diulang kepada gelung foreach di dalam fungsi. Fikirkan dan cuba hantar nilai tidak boleh lelaran ke gelung foreach dan semak perkara yang berlaku. Thn, anda sepatutnya lebih jelas tentang penggunaan iterables.

Contoh – Fungsi mengembalikan Iterable

Dalam contoh di atas, kita mengkaji iterable sebagai hujah fungsi, sekarang, kita akan melihat iterable sebagai nilai pulangan daripada fungsi.

<?php
function getIterable():iterable {
  return ["a", "b", "c"];
}

$myIterable = getIterable();
foreach($myIterable as $item) {
  echo $item;
}
?>
  • Dalam contoh di atas, kami mencipta fungsi yang mudah mengembalikan beberapa nilai. Fokus pada jenis pemulangan fungsi di sebelah kanan nama fungsi berulang kali. Ia mewajibkan fungsi untuk mengembalikan nilai boleh lelar.
  • Panggil fungsi dan hantar nilai yang dikembalikan ke gelung foreach. Cuba jalankan contoh ini pada mesin anda dan lihat cetakan gema pada skrin.
  • Cuba amalkan contoh ini dengan mengembalikan beberapa nilai bukan iterabel daripada fungsi. Baca ralat dan kemudian kembalikan beberapa tatasusunan tunggal dan dua dimensi.

Bagaimana untuk membuat Iterables dalam PHP?

  • Tatasusunan: Semua tatasusunan dalam PHP boleh diulang. Seperti pada permulaan bacaan ini, anda mengetahui bahawa mana-mana data yang boleh diterima oleh setiap gelung adalah boleh diubah. Jadi, semua tatasusunan tunggal, berbilang dimensi dan bersekutu boleh diulang secara lalai.
  • Iterator: Antara muka lelaran objek yang dilaksanakan juga diterima oleh fungsi yang memerlukan data lelaran dalam hujah.

Iterator terdiri daripada data untuk gelung padanya dan kaedah yang berfungsi bersama untuk menggelungkan melalui data. Penunjuk sentiasa menunjuk pada elemen data. Setiap elemen data mengandungi kunci yang digunakan untuk mencari setiap elemen di dalam data yang boleh diubah.

Untuk membuat iterator, ia harus melaksanakan kaedah berikut.

  • seterusnya () – Mengalihkan penuding ke elemen seterusnya dalam data.
  • gulung semula() – Penunjuk mula menunjuk pada elemen pertama data.
  • sah() – Ia memastikan bahawa penunjuk menunjuk kepada elemen yang diingini atau tidak. Sebagai contoh, jika next() dipanggil dan penunjuk berada pada elemen terakhir data i:e tiada elemen data wujud selepasnya. Kemudian sah akan kembali palsu. Ia akan kembali benar apabila next() berpindah ke elemen seterusnya dan rewind() berpindah ke elemen pertama.

Contoh

Mencipta iterable dengan melaksanakan antara muka iterator dan kemudian menggunakannya sebagai iterable.

<?php
// Create an Iterator
class MyIterator implements Iterator {
  private $items = [];
  private $pointer = 0;

  public function __construct($items) {
    // array_values() makes sure that the keys are numbers
    $this->items = array_values($items);
  }

  public function current() {
    return $this->items[$this->pointer];
  }

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

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

  public function rewind() {
    $this->pointer = 0;
  }

  public function valid() {
    // count() indicates how many items are in the list
    return $this->pointer < count($this->items);
  }
}

// A function that uses iterables
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

// Use the iterator as an iterable
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>

Sekarang setelah anda mengenali asas PHP, tiba masanya untuk melihatnya pangkalan data MYSQL seterusnya.

Add comment

Rangkaian Tutor

Belajar PHP dari A hingga Z