Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como retornar valores de un for en una funcion

Estas en el tema de Como retornar valores de un for en una funcion en el foro de PHP en Foros del Web. Hola amigos, estuve luchando y buscando por todos lados como poder retornar valores de un for hecho dentro de una función, pero no e podido ...
  #1 (permalink)  
Antiguo 14/12/2013, 23:48
Avatar de JuanPabloArrebillaga  
Fecha de Ingreso: diciembre-2013
Ubicación: Córdoba
Mensajes: 46
Antigüedad: 10 años, 4 meses
Puntos: 0
Como retornar valores de un for en una funcion

Hola amigos, estuve luchando y buscando por todos lados como poder retornar valores de un for hecho dentro de una función, pero no e podido ni e encontrado nada.

Codigo:
Código PHP:
Ver original
  1. <?php
  2.  
  3. function Product($num)
  4. {
  5.     for($i = $num;$i > 0;$i--)
  6.     {
  7.         $return = $num .'*'. $i .'= '. $num*$i .'</br>';
  8.  
  9.         return $return;
  10.     }
  11. }
  12.  
  13. echo Product(5);
  14.  
  15. ?>

Ese código tengo de momento pero no puedo hacer que se retornen en este caso las 5 cuentas solo se retorna la primera.

Desde ya gracias.

Saludos
  #2 (permalink)  
Antiguo 15/12/2013, 01:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Como retornar valores de un for en una funcion

El ciclo solamente tendrá una iteración porque, después del primer return, se cortará el ciclo. Podrías ir llenando un array o una cadena con los valores y, al final, retornas el array o cadena.

Código PHP:
Ver original
  1. function Product($num)
  2. {
  3.     for($i = $num;$i > 0;$i--)
  4.         $return[] = $num .'*'. $i .'= '. $num*$i .'</br>';
  5.  
  6.     return $return;
  7. }
  8.  
  9. foreach(Product(5) as $dato)
  10.     echo $dato;

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 15/12/2013, 01:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Como retornar valores de un for en una funcion

Hola:

Si pones el return dentro del bucle, retorna el primer valor y sale de la función y del bucle... deberías gardar los valores en un array y retornarlo al finalizar el bucle...

function Product($num)
{
$todo = array();
for($i = $num;$i > 0;$i--)
{
array_push($todo, $num .'*'. $i .'= '. $num*$i); // -> esto nos sobra .'</br>';


}
return $todo;
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 15/12/2013, 01:35
Avatar de JuanPabloArrebillaga  
Fecha de Ingreso: diciembre-2013
Ubicación: Córdoba
Mensajes: 46
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Como retornar valores de un for en una funcion

Alexis88 tu código me funcionaria pero no podría estar creando un foreach por cada vez que necesite llamar funciones de array necesitaría otra solucion.

caricatos tu código me lanza un error Notice: Array to string conversion in C:\xampp\htdocs\HlCMS\Kernel\Templates\Nav.php on line 69

Por favor si pudieran darme otra solución que no sea usando un foreach.
__________________
Medir el progreso de la programación por líneas de código es como medir el progreso en la construcción de aviones por el peso.
  #5 (permalink)  
Antiguo 15/12/2013, 01:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Como retornar valores de un for en una funcion

El foreach es solamente para imprimir los datos del array, es como si utilizaras el echo para imprimir una cadena, de todos modos tendrías que usarlo cada vez que imprimas una; el foreach tendría esa equivalencia aquí.

Ahora, si no quieres trabajar con arrays, puedes hacerlo con cadenas:

Código PHP:
Ver original
  1. function Product($num)
  2. {
  3.     $return = "";
  4.     for($i = $num;$i > 0;$i--)
  5.         $return .= $num .'*'. $i .'= '. $num*$i .'</br>';
  6.  
  7.     return $return;
  8. }
  9.  
  10. echo Product(5);

De todos modos, creo que es más ordenado trabajar con arrays, para casos como este.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 15/12/2013, 02:13
Avatar de JuanPabloArrebillaga  
Fecha de Ingreso: diciembre-2013
Ubicación: Córdoba
Mensajes: 46
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Como retornar valores de un for en una funcion

Bueno Gracias, sinceramente yo entiendo al foreach mas que como una función para imprimir, como un bucle en arrays.
__________________
Medir el progreso de la programación por líneas de código es como medir el progreso en la construcción de aviones por el peso.
  #7 (permalink)  
Antiguo 15/12/2013, 02:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Como retornar valores de un for en una funcion

Hola:

Si quieres mostrar todo el array puedes usar print_r, o allanarlo con implode...

$cinco = Product(5)
echo implode("<br/>", $cinco);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 15/12/2013, 13:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Como retornar valores de un for en una funcion

JuanPabloArrebillaga, no entendiste bien lo que quise decir, me refería a que, en casos como este, lo usarías para recorrer un array e imprimir cada uno de sus datos, esto sería equivalente a que pongas un echo o más por cada vez que quisieras imprimir un dato o un conjunto de ellos. También tienes la opción que menciona caricatos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 15/12/2013, 14:38
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como retornar valores de un for en una funcion

la opcion mas simple creo que seria esta no se si es lo que buscas pero ay te lo dejo por si acaso.

Código PHP:
Ver original
  1. function Product($num)
  2. {
  3.     for($i = $num;$i > 0;$i--)
  4.     {
  5.         echo  $num .'*'. $i .'= '. $num*$i.'<br>' ;
  6.     }
  7.  
  8.     return;
  9. }
  10.  
  11. Product(5);
  #10 (permalink)  
Antiguo 15/12/2013, 15:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Como retornar valores de un for en una funcion

webankenovi, había pensado en sugerirle lo mismo, pero él quiere devolver los datos que se generan en el bucle.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: funcion, retornar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:33.