Acabo de enterarme de Iterables de PHP 7.1 docs. Pero no obtuve su caso de uso real y tampoco el concepto es claro para mí. Entonces, ¿alguien puede explicarlo con algún ejemplo fácil para agarrarlo más rápido?
Quiero saber por qué y dónde lo usamos. ¿Cuáles son los beneficios de iterable?
Esto podría ayudar a wiki.php.net/rfc/iterable
La principal ventaja de tener iterable es que una clase, método o parámetro de función puede declararse iterable pero no preocuparse por la implementación, es decir, matriz, iterador, generador, etc. Por lo tanto, se puede usar cualquier cosa que sea iterable .
Soy principiante en PHP y durante las últimas 5 horas he estado investigando sobre el tema. Según tengo entendido, un iterator nos permite leer grandes cantidades de datos que desbordan la memoria RAM, un ejemplo sería un análisis de archivos de registro grandes.
Al usar un modo llamado de naturaleza perezosa que lee un elemento a la vez, puede leer un archivo de 4 GB sin tener que cargarlo todo en la memoria. En teoría, podrías procesar una cantidad infinita de información.
Para eso necesitamos definir algunos métodos:
<?php class myIterator implements Iterator { private $position = 0; private $array = array("A","B","C",); public function __construct() { $this->position = 0; } function rewind() { $this->position = 0; } function current() { return $this->array[$this->position]; } function key() { return $this->position; } function next() { $this->position++; } function valid() { return isset($this->array[$this->position]); } } $it = new myIterator; foreach($it as $key => $value) { var_dump($key, $value); echo "\n"; }En PHP 7.1 esto se puede reducir a:
<?php class myIterable { function foo(iterable $iterable){ foreach ($iterable as $key => $value) { var_dump($key, $value); echo "\n"; } } } $it = new myIterable; $it->foo(array("A","B","C",));Espero que esto ayude ;)