53-iterables en php




¿Qué es un Iterable?

Un **iterable** es cualquier valor que se puede recorrer con un bucle foreach() en PHP. Se introdujo el pseudo-tipo iterable en PHP 7.1, y se puede utilizar como un tipo de datos para los argumentos de una función y valores de retorno de una función.

Ejemplo de Uso

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

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

Usando Iterables

Se puede usar la palabra clave iterable como tipo de datos en un argumento de función o como tipo de retorno de una función.

Ejemplo

<?php
function getIterable(): iterable {
    return ["x", "y", "z"];
}

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

Creación de Iterables

En PHP, los **arrays** son iterables por defecto. Sin embargo, también se pueden crear iteradores personalizados implementando la interfaz Iterator.

Ejemplo de Implementación de un Iterador

<?php
class MyIterator implements Iterator {
    private $items = [];
    private $pointer = 0;

    public function __construct($items) {
        $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() {
        return $this->pointer < count($this->items);
    }
}

$iterator = new MyIterator(["p", "q", "r"]);
foreach ($iterator as $item) {
    echo $item;
}
?>

Publicar un comentario

0 Comentarios