НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

PHP Підручник

PHP СТАРТ PHP Інтро PHP Встановлення PHP Синтаксис PHP Коментарі PHP Змінні PHP Echo / Print PHP Типи даних PHP Рядки PHP Числа PHP Математика PHP Константи PHP Оператори PHP If...Else...Elseif PHP Switch PHP Цикли PHP Функції PHP Масиви PHP Суперглобали PHP RegEx

PHP Форми

PHP Обробка форми PHP Перевірка форми PHP Обов'язкові поля форми PHP Форма URL/E-mail PHP Заповнення форми

PHP Розширений

PHP Дата і час PHP Підключення файлів PHP Обробка файлів PHP Файл відкрити/читати PHP Файл створити/записати PHP Файл Завантажити PHP Кукі PHP Сесії PHP Фільтри PHP Розширені фільтри PHP Callback функції PHP JSON PHP Винятки

PHP ООП

PHP Що таке ООП PHP класи/об'єкти PHP Конструктор PHP Деструктор PHP Модифікатори доступу PHP Спадкування PHP Константи PHP Абстрактні класи PHP Інтерфейси PHP Трейти PHP Статичні методи PHP Статичні властивості PHP Простори імен PHP Ітерація

MySQL База даних

MySQL База даних MySQL Підключення MySQL Створити БД MySQL Створити таблиці MySQL Вставити дані MySQL Отримати останній ID MySQL Вставити кілька записів MySQL Підготовлені інструкції MySQL Вибрати дані MySQL Where MySQL Order By MySQL Видалення даних MySQL Оновлення даних MySQL Обмеження даних

PHP XML

PHP XML Парсери PHP SimpleXML Парсер PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Інтро AJAX PHP AJAX База даних AJAX XML AJAX Живий пошук AJAX Опитування

PHP Приклади

PHP Приклади PHP Компілятор PHP Вікторина PHP Вправи PHP Сертифікат

PHP Довідник

PHP Огляд PHP Масив PHP Календар PHP Дата PHP Каталог PHP Помилка PHP Виняток PHP Файлова система PHP Фільтр PHP FTP PHP JSON PHP Ключові слова PHP Libxml PHP Пошта PHP Математика PHP Різне PHP MySQLi PHP Мережа PHP Output Control PHP RegEx PHP SimpleXML PHP Потік PHP Рядок PHP Обробка змінних PHP XML Парсер PHP Zip PHP Часові пояси

PHP. W3Schools українською. Уроки для початківців

En

PHP Ітерація


PHP - Що таке ітерація?

Ітерація — це будь-яке значення, яке можна перебрати за допомогою циклу foreach().

Псевдотип iterable було представлено в PHP 7.1, і його можна використовувати як тип даних для аргументів функції та значень, що повертаються функцією.


PHP - Використання ітерації

Ключове слово iterable можна використовувати як тип даних аргументу функції або як тип повернення функції:

Приклад

Використовуйте ітерований (повторюваний) аргумент функції:

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

$arr = ["a", "b", "c"];
printIterable($arr);
?>
Спробуйте самі »

Приклад

Повернути ітерацію:

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

$myIterable = getIterable();
foreach($myIterable as $item) {
  echo $item;
}
?>
Спробуйте самі »

PHP - Створення ітерації

Масиви

Усі масиви є ітерованими, тому будь-який масив можна використовувати як аргумент функції, яка потребує ітерації.

Ітератори

Будь-який об’єкт, який реалізує інтерфейс Iterator, можна використовувати як аргумент функції, яка вимагає ітерації.

Ітератор містить список елементів і надає методи для їх циклічного проходження. Він зберігає покажчик на один з елементів у списку. Кожен елемент у списку повинен мати ключ, за яким можна знайти цей елемент.

Ітератор повинен мати такі методи:

  • current() Повертає елемент, на який зараз вказує вказівник. Це може бути будь-який тип даних
  • key() Повертає ключ, пов’язаний із поточним елементом у списку. Це може бути лише ціле число, число з плаваючою точкою, логічне значення або рядок
  • next() Переміщує вказівник на наступний елемент у списку
  • rewind() Переміщує вказівник на перший елемент у списку
  • valid() Якщо внутрішній покажчик не вказує на жоден елемент (наприклад, якщо next() було викликано в кінці списку), це має повернути false. Він повертає true в будь-якому іншому випадку

Приклад

Реалізуйте інтерфейс Iterator і використовуйте його як iterable:

<?php
// Створити ітератор
class MyIterator implements Iterator {
  private $items = [];
  private $pointer = 0;

  public function __construct($items) {
    // array_values() переконається, що ключі є цифрами
    $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() вказує кількість елементів у списку
    return $this->pointer < count($this->items);
  }
}

// Функція, яка використовує ітерації
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

// Використовуйте ітератор як ітератор
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>
Спробуйте самі »