PHP iterable obyektlar


ULASHISH

PHP iterable’lari

PHP-da iterable - bu foreach() sikli orqali o‘tish mumkin bo‘lgan qiymat.

iterable psevdo-tipi PHP 7.1 da joriy qilingan va undan funksiya argumentlari hamda funksiya qaytaradigan qiymatlar uchun ma’lumot tipi sifatida foydalanish mumkin.

Iterable massiv yoki Iterator interfeysini amalga oshiradigan obyekt bo‘lishi mumkin.


PHP - iterable’lardan foydalanish

iterable kalit so‘zidan funksiya parametrining ma’lumot tipi yoki funksiyaning qaytariladigan tipi sifatida foydalanish mumkin:

Misol

Iterable funksiya parametri:

<?php function printIterable(iterable $x) {   foreach($x as $item) {     echo $item;   } } // Called with an array: printIterable(["a", "b", "c"]); // Called with an object: $iterator = new ArrayIterator(["d", "e", "f"]); printIterable($iterator); ?>
O‘zingiz sinab ko‘ring »

Misol

Iterable qaytariladigan tip:

<?php function getIterable():iterable {   return ["a", "b", "c"]; } foreach(getIterable() as $item) {   echo $item; } ?>
O‘zingiz sinab ko‘ring »


PHP - iterable’lar yaratish

Massivlar

Barcha massivlar iterable hisoblanadi, shuning uchun har qanday massiv iterable talab qiladigan funksiyaning argumenti sifatida ishlatilishi mumkin.

Iteratorlar

Iterator interfeysini amalga oshiradigan har qanday obyekt iterable talab qiladigan funksiyaning argumenti sifatida ishlatilishi mumkin.

Iterator elementlar ro‘yxatini o‘z ichiga oladi va ular bo‘ylab sikl bilan o‘tish uchun metodlarni taqdim etadi. U ro‘yxatdagi elementlardan biriga ko‘rsatkichni (pointer) saqlaydi. Ro‘yxatdagi har bir element elementni topish uchun ishlatilishi mumkin bo‘lgan kalitga ega bo‘lishi kerak.

Iterator quyidagi metodlarga ega bo‘lishi kerak:

  • current() - ko‘rsatkich hozir ko‘rsatayotgan elementni qaytaradi. U har qanday ma’lumot tipida bo‘lishi mumkin
  • key() Ro‘yxatdagi joriy element bilan bog‘langan kalitni qaytaradi. U faqat integer, float, boolean yoki string bo‘lishi mumkin
  • next() Ko‘rsatkichni ro‘yxatdagi keyingi elementga o‘tkazadi
  • rewind() Ko‘rsatkichni ro‘yxatdagi birinchi elementga o‘tkazadi
  • valid() Agar ichki ko‘rsatkich hech qanday elementga ishora qilmasa (masalan, next() ro‘yxat oxirida chaqirilgan bo‘lsa), u false qaytarishi kerak. Boshqa har qanday holatda true qaytaradi

Misol

Iterator interfeysini amalga oshiring va undan iterable sifatida foydalaning:

<?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); ?>
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!