Penggunaan fungsi REEIND pada PHP

Apakah Iterable dalam PHP?

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

  • Iterables ialah sebarang nilai yang foreach gelung menerima dan boleh lelaran.
  • 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 lulus nilai tidak boleh lelaran sebagai hujah fungsi, ia akan membuang ralat.
  • Jadi, iterable pastikan untuk memberi nilai iterable kepada foreach gelung di dalam fungsi. Fikir dan cuba berikan nilai yang tidak boleh diulang kepada foreach gelung dan semak apa yang berlaku. Kemudian, anda harus 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 hanya mengembalikan beberapa nilai. Fokus pada jenis pemulangan fungsi di sebelah kanan nama fungsi yang boleh diulang. Ia mewajibkan fungsi untuk mengembalikan nilai yang boleh diubah.
  • Panggil fungsi dan hantar nilai yang dikembalikan kepada foreach gelung. 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 foreach gelung boleh terima 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 diulang.

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 seterusnya () dipanggil dan penunjuk berada pada elemen terakhir data i:e tiada unsur data wujud selepasnya. Kemudian sah akan kembali palsu. Ia akan kembali benar apabila seterusnya () bergerak ke elemen seterusnya dan gulung semula() bergerak 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.