PHP -zelfstudie

PHP HOME PHP-intro PHP-installatie PHP-syntaxis PHP-opmerkingen PHP-variabelen PHP-echo / afdrukken PHP-gegevenstypen PHP-strings PHP-nummers PHP-wiskunde PHP-constanten PHP-operators PHP Als...Anders...Anders PHP-switch PHP-loops PHP-functies PHP-arrays PHP Superglobals PHP RegEx

PHP- formulieren

PHP-formulierverwerking PHP-formuliervalidatie PHP-formulier vereist URL/e-mail van PHP-formulier PHP-formulier voltooid

PHP Geavanceerd

PHP-datum en tijd PHP opnemen PHP-bestandsverwerking PHP-bestand openen/lezen PHP-bestand maken/schrijven PHP-bestand uploaden PHP-cookies PHP-sessies PHP-filters PHP-filters geavanceerd PHP-callback-functies PHP JSON PHP-uitzonderingen

PHP OOP

PHP Wat is OOP PHP-klassen/objecten PHP-constructor PHP-vernietiger PHP-toegangsmodificaties PHP-overerving PHP-constanten PHP abstracte lessen PHP-interfaces PHP-kenmerken PHP statische methoden Statische eigenschappen van PHP PHP-naamruimten PHP-iterables

MySQL- database

MySQL-database MySQL Connect MySQL DB maken MySQL-tabel maken MySQL Gegevens invoegen MySQL Laatste ID ophalen MySQL Meerdere invoegen MySQL voorbereid MySQL Gegevens selecteren MySQL Waar MySQL Bestel op MySQL Gegevens verwijderen MySQL-updategegevens MySQL-limietgegevens

PHP XML

PHP XML-parsers PHP SimpleXML-parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

Ajax-intro AJAX PHP AJAX-database AJAX XML Live zoeken in Ajax Ajax-peiling

PHP- voorbeelden

PHP-voorbeelden PHP-compiler PHP-quiz PHP-oefeningen PHP-certificaat

PHP- referentie

PHP-overzicht PHP-array PHP-agenda PHP-datum PHP-map PHP-fout PHP-uitzondering PHP-bestandssysteem PHP-filter PHP FTP PHP JSON PHP-sleutelwoorden PHP Libxml PHP-e-mail PHP-wiskunde PHP Diversen PHP MySQLi PHP-netwerk PHP-uitvoercontrole PHP RegEx PHP SimpleXML PHP-stream PHP-string Beheer van PHP-variabelen PHP XML-parser PHP-zip PHP-tijdzones

PHP-iterables


PHP - Wat is een Iterable?

Een iterabel is elke waarde die kan worden doorlopen met een foreach()lus.

Het iterablepseudo-type is geïntroduceerd in PHP 7.1 en kan worden gebruikt als een gegevenstype voor functieargumenten en functieretourwaarden.


PHP - Iterables gebruiken

Het iterablesleutelwoord kan worden gebruikt als een gegevenstype van een functieargument of als het retourtype van een functie:

Voorbeeld

Gebruik een itereerbaar functieargument:

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

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

Voorbeeld

Retourneer een iterabel:

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

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


PHP - Iterables maken

arrays

Alle arrays zijn iterables, dus elke array kan worden gebruikt als argument van een functie waarvoor een iterable nodig is.

iterators

Elk object dat de Iteratorinterface implementeert, kan worden gebruikt als argument van een functie waarvoor een iterable nodig is.

Een iterator bevat een lijst met items en biedt methoden om er doorheen te lopen. Het houdt een verwijzing naar een van de elementen in de lijst. Elk item in de lijst moet een sleutel hebben die kan worden gebruikt om het item te vinden.

Een iterator moet deze methoden hebben:

  • current()- Retourneert het element waarnaar de aanwijzer momenteel verwijst. Het kan elk gegevenstype zijn
  • key()Retourneert de sleutel die is gekoppeld aan het huidige element in de lijst. Het kan alleen een geheel getal, float, boolean of string zijn
  • next()Verplaatst de aanwijzer naar het volgende element in de lijst
  • rewind()Verplaatst de aanwijzer naar het eerste element in de lijst
  • valid()Als de interne aanwijzer niet naar een element verwijst (bijvoorbeeld als next() aan het einde van de lijst werd aangeroepen), zou dit false moeten retourneren. In elk ander geval wordt true geretourneerd

Voorbeeld

Implementeer de Iterator-interface en gebruik deze als een 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);
?>