Iterabili in PHP

I
Spazi dei nomi in PHP
Introduzione a PHP/MySQL

Che cos'è un Iterable in PHP?

Richiama il tutorial sui loop in questa serie PHP e vai a foreach ciclo per l'esattezza. In questo articolo imparerai gli iterabili in PHP in collegamento con foreach ciclo continuo.

  • Iterables è qualsiasi valore che foreach loop accetta ed è iterabile.
  • PHP 7.1 ha introdotto questo tipo di pseudo-dati e può essere utilizzato come tipo di dati di ritorno delle funzioni. Inoltre, la funzione può accettare iterabili come argomento.

Come usare Iterables in PHP?

iterabile la parola chiave definisce il tipo dell'argomento o il tipo restituito della funzione dovrebbe essere un valore iterabile. Guarda il seguente esempio.

Esempio

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

$arr = ["a", "b", "c"];
printIterable($arr);
?>
  • Nell'esempio sopra. creiamo una funzione che accetta alcuni argomenti. Specifichiamo che l'argomento deve essere iterabile usando il iterabile parola chiave.
  • Ora, se chiamiamo questa funzione e passiamo il valore non iterabile come argomento della funzione, genererà un errore.
  • Quindi, gli iterabili si assicurano di fornire un valore iterabile a foreach ciclo all'interno di una funzione. Pensa e prova a passare un valore non iterabile a foreach loop e controlla cosa succede. Quindi, dovresti essere più chiaro sull'uso degli iterabili.

Esempio: funzione che restituisce Iterable

Nell'esempio sopra, abbiamo studiato l'iterabile come argomento della funzione, ora vedremo l'iterabile come il valore restituito da una funzione.

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

$myIterable = getIterable();
foreach($myIterable as $item) {
  echo $item;
}
?>
  • Nell'esempio sopra, creiamo una funzione che restituisce semplicemente un valore. Concentrati sul tipo restituito della funzione sul lato destro del nome della funzione iterabile. Rende obbligatorio per la funzione restituire un valore iterabile.
  • Chiama la funzione e passa il valore restituito a foreach ciclo continuo. Prova a eseguire questo esempio sulla tua macchina e guarda cosa stampa l'eco sullo schermo.
  • Prova a fare pratica con questo esempio restituendo alcuni valori non iterabili dalla funzione. Leggere l'errore e quindi restituire alcuni array monodimensionali e bidimensionali.

Come creare Iterable in PHP?

  • Array: tutti gli array in PHP sono iterabili. Come all'inizio di questa lettura, hai appreso che tutti i dati che foreach ciclo può accettare è iterabile. Quindi, tutti gli array singoli, multidimensionali e associativi sono iterabili per impostazione predefinita.
  • Iteratori: un'interfaccia iteratore implementata da un oggetto è accettata anche da una funzione che richiede dati iterabili in un argomento.

Un iteratore è costituito dai dati su cui eseguire il ciclo e dai metodi che interagiscono per scorrere i dati. Un puntatore punta sempre a un elemento dei dati. Ogni elemento dei dati contiene una chiave che viene utilizzata per trovare ogni elemento all'interno dei dati dell'iterabile.

Per creare un iteratore, dovrebbe implementare i seguenti metodi.

  • Il prossimo() – Sposta il puntatore all'elemento successivo nei dati.
  • riavvolgi() – Il puntatore inizia a puntare al primo elemento di dati.
  • valido() – Si assicura che il puntatore punti o meno all'elemento desiderato. Ad esempio, se il Il prossimo() viene chiamato e il puntatore si trova sull'ultimo elemento dei dati i:e non esiste alcun elemento dati dopo di esso. Allora valido restituirà falso. Tornerà vero quando il Il prossimo() passa all'elemento successivo e riavvolgi() passa al primo elemento.

Esempio

Creazione di un iterabile implementando un'interfaccia iteratore e quindi utilizzandolo 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);
?>

Ora che hai acquisito familiarità con le basi di PHP, è tempo di approfondire Database MySQL successivo.

Spazi dei nomi in PHP
Introduzione a PHP/MySQL

Aggiungi un commento

Rete di tutor

Condividi questo

Impara PHP dalla A alla Z