Esercitazione PHP

PHP HOME Introduzione a PHP Installazione PHP Sintassi PHP Commenti PHP Variabili PHP PHP Eco/Stampa Tipi di dati PHP Stringhe PHP Numeri PHP PHP matematica Costanti PHP Operatori PHP PHP Se...Altro...Altro Passaggio PHP Ciclo PHP Funzioni PHP Array PHP Superglobali PHP RegEx PHP

Moduli PHP

Gestione dei moduli PHP Convalida del modulo PHP Modulo PHP richiesto URL/e-mail del modulo PHP Modulo PHP completo

PHP avanzato

Data e ora PHP PHP Include Gestione dei file PHP Apri/Leggi file PHP Creazione/scrittura di file PHP Caricamento file PHP Cookie PHP Sessioni PHP Filtri PHP Filtri PHP avanzati Funzioni di callback PHP PHP JSON Eccezioni PHP

PHP OOP

PHP Che cos'è OOP Classi/Oggetti PHP Costruttore PHP PHP distruttore Modificatori di accesso PHP Ereditarietà PHP Costanti PHP Classi astratte PHP Interfacce PHP Tratti PHP Metodi statici PHP Proprietà statiche PHP Spazi dei nomi PHP Iterabili PHP

Database MySQL

Database MySQL MySQL Connect MySQL Crea DB MySQL Crea tabella Dati di inserimento MySQL MySQL Ottieni l'ultimo ID MySQL inserisce più MySQL preparato MySQL Seleziona dati MySQL dove MySQL Ordina per MySQL Elimina dati Dati di aggiornamento MySQL Dati limite MySQL

PHP XML

Parser XML PHP Analizzatore PHP SimpleXML PHP SimpleXML - Ottieni PHP XML espatriato PHP XML DOM

PHP - AJAX

Introduzione all'Ajax AJAX PHP Database AJAX XML AJAX Ricerca in tempo reale AJAX Sondaggio AJAX

Esempi PHP

Esempi PHP compilatore PHP Quiz PHP Esercizi PHP Certificato PHP

Riferimento PHP

Panoramica di PHP matrice PHP Calendario PHP Data PHP Directory PHP Errore PHP Eccezione PHP File system PHP Filtro PHP PHP FTP PHP JSON Parole chiave PHP PHP Libxml Posta PHP PHP matematica PHP Varie PHP MySQLi Rete PHP Controllo dell'output PHP RegEx PHP PHP SimpleXML Flusso PHP Stringa PHP Gestione delle variabili PHP Analizzatore XML PHP Zip PHP Fuso orario PHP

Iterabili PHP


PHP - Che cos'è un iterabile?

Un iterabile è qualsiasi valore che può essere riprodotto in loop con un foreach()ciclo.

Lo iterablepseudo-tipo è stato introdotto in PHP 7.1 e può essere utilizzato come tipo di dati per argomenti di funzioni e valori di ritorno di funzioni.


PHP - Utilizzo degli iterabili

La iterableparola chiave può essere utilizzata come tipo di dati di un argomento di funzione o come tipo restituito di una funzione:

Esempio

Usa un argomento di funzione iterabile:

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

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

Esempio

Restituisce un iterabile:

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

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


PHP - Creazione di iterabili

Matrici

Tutti gli array sono iterabili, quindi qualsiasi array può essere utilizzato come argomento di una funzione che richiede un iterabile.

Iteratori

Qualsiasi oggetto che implementa l' Iteratorinterfaccia può essere utilizzato come argomento di una funzione che richiede un iterabile.

Un iteratore contiene un elenco di elementi e fornisce metodi per scorrerli. Mantiene un puntatore a uno degli elementi nell'elenco. Ciascun elemento nell'elenco dovrebbe avere una chiave che può essere utilizzata per trovare l'elemento.

Un iteratore deve avere questi metodi:

  • current()- Restituisce l'elemento a cui punta il puntatore. Può essere qualsiasi tipo di dati
  • key()Restituisce la chiave associata all'elemento corrente nell'elenco. Può essere solo un numero intero, float, booleano o stringa
  • next() Sposta il puntatore all'elemento successivo nell'elenco
  • rewind() Sposta il puntatore sul primo elemento dell'elenco
  • valid()Se il puntatore interno non punta a nessun elemento (ad esempio, se next() è stato chiamato alla fine dell'elenco), questo dovrebbe restituire false. Restituisce vero in ogni altro caso

Esempio

Implementa l'interfaccia Iterator e usala come iterabile:

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