Hola, tengo una pregunta sobre el uso de
yield en PHP/5.4.7
Tengo el siguiente 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:
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:
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
<?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";
}
?>