elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] [DUDA] Yield en php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] [DUDA] Yield en php  (Leído 1,863 veces)
DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
[Resuelto] [DUDA] Yield en php
« en: 30 Marzo 2015, 22:30 pm »

Hola, tengo una pregunta sobre el uso de yield en PHP/5.4.7

Tengo el siguiente código:

Código
  1.  
  2. function get_users_messages_iterator($user_data)
  3. {
  4. global $connection;
  5.  
  6. $query = "SELECT * FROM messages";
  7. $result = $connection->query($query);
  8.  
  9. $row = array();
  10.  
  11. while($row = $result->fetch_assoc())
  12. {
  13. yield $row; //esto se puede hacer?
  14. }
  15. }
  16.  
  17.  

entonces tengo esta otra función desde la cual llamo a la función anterior:

Código
  1. function get_users_messages($user_data)
  2. {
  3. $messages = get_users_messages_iterator($user_data);
  4. foreach ($messages as $key => $value) {
  5. echo $value;
  6. }
  7. }

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
  1. <?php
  2. function gen_one_to_three() {
  3.    for ($i = 1; $i <= 3; $i++) {
  4.        // Observe que $i es preservado entre yields
  5.        yield $i;
  6.    }
  7. }
  8.  
  9. $generator = gen_one_to_three();
  10. foreach ($generator as $value) {
  11.    echo "$value\n";
  12. }
  13. ?>


« Última modificación: 3 Abril 2015, 08:35 am por #!drvy » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [DUDA] Yield en php
« Respuesta #1 en: 30 Marzo 2015, 22:42 pm »

Es parte de los generadores de PHP.

http://php.net/manual/es/language.generators.overview.php

Y al parecer necesitas PHP 5.5.0 en adelante. Parece sintaxis valida para mi, aunque si te soy honesto no los he usado.


En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: [DUDA] Yield en php
« Respuesta #2 en: 30 Marzo 2015, 22:47 pm »

Citar
Información general

(PHP 5 >= 5.5.0)

Los generadores proporcionan ...

^ En efecto, no habia leído esa parte. Menos mal que me aclaraste, sino hubiera estado todo el día rompiendome la cabeza. xD Pues como yo lo veía no había ningun problema sintáctico. Actualizaré php y listo! Muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
{Resuelto} [Duda VBS] Clipboardd. « 1 2 3 »
Scripting
xassiz_ 22 11,909 Último mensaje 15 Septiembre 2009, 16:45 pm
por xassiz_
{Resuelto} [vbs] Duda InputBox
Scripting
xassiz_ 9 5,950 Último mensaje 26 Septiembre 2009, 15:22 pm
por xassiz_
Duda con ISO mounted [Resuelto]
GNU/Linux
portaro 1 2,600 Último mensaje 4 Marzo 2012, 19:10 pm
por portaro
[BATCH] Duda con el IF... (Resuelto)
Scripting
Duning 2 2,503 Último mensaje 30 Julio 2012, 19:09 pm
por Duning
Generadores y yield en Python…
Scripting
El mas antiguo 9 9,533 Último mensaje 18 Diciembre 2022, 21:20 pm
por El mas antiguo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines