Tengo el siguiente código:
Código
function get_users_messages_iterator($user_data) { global $connection; $query = "SELECT * FROM messages"; $result = $connection->query($query); while($row = $result->fetch_assoc()) { yield $row; //esto se puede hacer? } }
entonces tengo esta otra función desde la cual llamo a la función anterior:
Código
function get_users_messages($user_data) { $messages = get_users_messages_iterator($user_data); foreach ($messages as $key => $value) { echo $value; } }
Pero esto me dá el siguiente error:
Citar
Parse error: syntax error, unexpected '$row' (T_VARIABLE) in F:\System\Archivos de programa\XAMPP\htdocs\questions\functions\users.php on line 192
No se si lo que estoy haciendo está bien, vale destacar que es la primera vez que utilizo el yield en PHP, se como funciona, pero quizás no me estoy dando cuenta de algo. No se porque me da ese error el parser, espero me puedan ayudar.
Gracias
Añado: Incluso este ejemplo básico que veo en la documentación de php no funciona, me dá el mismo error
Código
<?php function gen_one_to_three() { for ($i = 1; $i <= 3; $i++) { // Observe que $i es preservado entre yields yield $i; } } $generator = gen_one_to_three(); foreach ($generator as $value) { echo "$value\n"; } ?>