Tutoriel PHP

ACCUEIL PHP Introduction PHP Installation PHP Syntaxe PHP Commentaires PHP Variables PHP Écho PHP / Impression Types de données PHP Chaînes PHP Numéros PHP Mathématiques PHP Constantes PHP Opérateurs PHP PHP Si... Sinon... Sinon Commutateur PHP Boucles PHP Fonctions PHP Tableaux PHP Superglobales PHP Expression régulière PHP

Formulaires PHP

Gestion des formulaires PHP Validation de formulaire PHP Formulaire PHP requis URL/courriel du formulaire PHP Formulaire PHP terminé

PHP Avancé

Date et heure PHP Inclure PHP Gestion des fichiers PHP Fichier PHP Ouvrir/Lire Création/écriture de fichier PHP Téléchargement de fichier PHP Cookies PHP Séances PHP Filtres PHP Filtres PHP avancés Fonctions de rappel PHP PHPJSON Exception PHP

POO PHP

PHP Qu'est-ce que la POO Classes/Objets PHP Constructeur PHP Destructeur PHP Modificateurs d'accès PHP Héritage PHP Constantes PHP Classes abstraites PHP Interface PHP Caractéristiques PHP Méthodes statiques PHP Propriétés statiques PHP Espaces de noms PHP Itérables PHP

Base de données MySQL

Base de données MySQL Connexion MySQL Créer une base de données MySQL Créer une table MySQL MySQL Insérer des données MySQL obtenir le dernier ID MySQL Insérer plusieurs MySQL préparé MySQL Sélectionner les données MySQL Où Trier MySQL par MySQL Supprimer les données Données de mise à jour MySQL Données de limite MySQL

XML PHP

Analyseurs PHP XML Analyseur PHP SimpleXML PHP SimpleXML - Obtenir Expatriation PHP XML PHP XML DOM

PHP -AJAX

Introduction à AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en direct AJAX Sondage AJAX

Exemples PHP

Exemples PHP Compilateur PHP Questionnaire PHP Exercices PHP Certificat PHP

Référence PHP

Présentation de PHP Tableau PHP Calendrier PHP Date PHP Annuaire PHP Erreur PHP Exception PHP Système de fichiers PHP Filtre PHP FTP PHP PHPJSON Mots clés PHP PHP LibxmlComment Messagerie PHP Mathématiques PHP Divers PHP PHP MySQL Réseau PHP Contrôle de sortie PHP Expression régulière PHP PHP SimpleXML Flux PHP Chaîne PHP Gestion des variables PHP Analyseur PHP XML Code postal PHP Fuseaux horaires PHP

Itérables PHP


PHP - Qu'est-ce qu'un itérable ?

Un itérable est une valeur qui peut être bouclée avec une foreach()boucle.

Le iterablepseudo-type a été introduit dans PHP 7.1 et peut être utilisé comme type de données pour les arguments de fonction et les valeurs de retour de fonction.


PHP - Utilisation des itérables

Le iterablemot clé peut être utilisé comme type de données d'un argument de fonction ou comme type de retour d'une fonction :

Exemple

Utilisez un argument de fonction itérable :

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

$arr = ["a", "b", "c"];
printIterable($arr);
?>

Exemple

Renvoie un itérable :

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

$myIterable = getIterable();
foreach($myIterable as $item) {
  echo $item;
}
?>


PHP - Création d'itérables

Tableaux

Tous les tableaux sont itérables, donc n'importe quel tableau peut être utilisé comme argument d'une fonction qui nécessite un itérable.

Itérateurs

Tout objet qui implémente l' Iteratorinterface peut être utilisé comme argument d'une fonction qui nécessite un itérable.

Un itérateur contient une liste d'éléments et fournit des méthodes pour les parcourir en boucle. Il conserve un pointeur sur l'un des éléments de la liste. Chaque élément de la liste doit avoir une clé qui peut être utilisée pour trouver l'élément.

Un itérateur doit avoir ces méthodes :

  • current()- Renvoie l'élément sur lequel le pointeur pointe actuellement. Il peut s'agir de n'importe quel type de données
  • key()Renvoie la clé associée à l'élément courant dans la liste. Il ne peut s'agir que d'un entier, d'un flottant, d'un booléen ou d'une chaîne
  • next() Déplace le pointeur vers l'élément suivant dans la liste
  • rewind() Déplace le pointeur sur le premier élément de la liste
  • valid()Si le pointeur interne ne pointe sur aucun élément (par exemple, si next() a été appelé à la fin de la liste), cela devrait renvoyer false. Il renvoie vrai dans tous les autres cas

Exemple

Implémentez l'interface Iterator et utilisez-la comme un itérable :

<?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);
?>