Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Generadores ejemplos en español
<?php //php 7.0.8 //http://rextester.com/edit/SUF33485 ############GENERADORES ############ ##Son funciones que extienden implícitamente un iterator ##en las funciones se incluye un bucle (for, while...) #Devuelven varios valores yield en vez de uno solo con return ##Para invocarlas, se utiliza un foreach (con clave=>valor o solo valor) function miGenerador() { for ($i=0; $i<7; $i++) { yield $i; } echo "\nSe acabó el bucle de miGenerador\n"; } //invocación a la función (dentro de un foreach) $numeros=miGenerador(); //se asigna la función a una variable //se recorre con un foreach foreach ($numeros as $valor) echo "\n$valor"; ##Ejemplo 2 ##con otro tipo de bucle function otroGenerador() { $i=1; while ($i<7) { yield $i; //también admite yield ($i) ++$i; } } $numeros=otroGenerador(); foreach ($numeros as $valor) { echo "\n$valor"; } echo "\nSe acabó el bucle otroGenerador\n"; ##Ejemplo 3 ##Pasando un valor al generador ##yield no solo devuelve valores, puede recibirlos ##escribiremos primero el código que llama a la función generador $numeros=Generador(); foreach($numeros as $valor) { if ($valor==3) //con el operador -> y el send se puede enviar un valor a yield $numeros->send("parada"); else //con la palabra clave send se envía un valor a yield echo "\n$valor"; } echo "\nSe acabó el bucle Generador\n"; function Generador() { for($i=1; $i<=10; $i++) { //yield está devolviendo un valor a la variable $respuesta //que se le ha enviado por medio de 'send' $respuesta=(yield $i); if ($respuesta=="parada") return; //para el bucle } } ?>
run
|
edit
|
history
|
help
0
123
rand_int
aaaa
123
Jasty
decompress C# in PHP
Email_T
AAA
H.php
binsearch