• Domingo 22 de Diciembre de 2024, 14:03

Autor Tema:  Funciones Con Argumentos Variables...  (Leído 2223 veces)

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Funciones Con Argumentos Variables...
« en: Sábado 28 de Enero de 2006, 09:10 »
0
Es posible en php, tener una funcion con un numero indeterminado de argumentos?
por ejemplo, que una funcion sea:

Código: Text
  1.  
  2. sumar(1, 2, 3, 4);
  3.  
  4.  

e igual manera pueda recibir:
Código: Text
  1.  
  2. sumar(1,2,3,4,5,6,7);
  3.  
  4.  

no se si me explico...
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Funciones Con Argumentos Variables...
« Respuesta #1 en: Sábado 28 de Enero de 2006, 14:31 »
0
Si, es posible.

Deberás indicar un valor por defecto para los argumentos opcionales, esa es la forma en que PHP interpreta que son opcionales.

Por ejemplo

Código: Text
  1. function sumar($valor1, $valor2 = 10) {
  2. $total = $valor1 + $valor2;
  3. echo $total;
  4. }
  5.  
  6. sumar(5); // El resultado que se mostraría por pantalla sería 15
  7. sumar(3, 4); // El resultado que se mostraría por pantalla sería 7
  8.  


Espero que te sirva.

Salu2,
Avalon

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Funciones Con Argumentos Variables...
« Respuesta #2 en: Sábado 28 de Enero de 2006, 20:47 »
0
:o
La verdad no sabia eso, es interesante, pero mi duda no era esa, pero leyendo tu respuesta creo que me expresé mal.

Mi duda es, que por ejemplo, si ponemos:
Código: Text
  1.  
  2. sumar(1,2);
  3.  
  4.  
el resultado fuese: 3

si ponemos
Código: Text
  1.  
  2. sumar(1,2,3);
  3.  
  4.  
el resultado fuese: 6

y si pusieramos
Código: Text
  1.  
  2. sumar(1);
  3.  
  4.  
el resultado fuese: 1

a ver si pueden ayudarme  :blink:

Gracias
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Funciones Con Argumentos Variables...
« Respuesta #3 en: Domingo 29 de Enero de 2006, 13:53 »
0
Pués solo se me ocurre hacerlo de esa forma, no se si habrá otra manera para un número de argumentos indeterminado. O eso o pasar los valores en un array :unsure:

Código: Text
  1. function sumar($valor1, $valor2 = 0, $valor3 = 0, $valor4 = 0, $valor5 = 0, $valor6 = 0, $valor7 = 0, $valor8 = 0, $valor9 = 0, $valor10 = 0) {
  2. $total = $valor1 + $valor2 + $valor3 + $valor4 + $valor5 + $valor6 + $valor7 + $valor8 + $valor9 + $valor10;
  3. return $total;
  4. }
  5.  
  6. echo sumar(5); // El resultado que se mostraría por pantalla sería 5
  7. echo sumar(3, 4); // El resultado que se mostraría por pantalla sería 7
  8. echo sumar(1, 6, 9); // El resultado que se mostraría por pantalla sería 16
  9.  

hdr

  • Miembro MUY activo
  • ***
  • Mensajes: 128
    • Ver Perfil
Re: Funciones Con Argumentos Variables...
« Respuesta #4 en: Domingo 29 de Enero de 2006, 17:14 »
0
yo no se php pero estoy leyendo el manual y en la parte de funciones dice:

PHP3 no soporta un número variable de parámetros, aunque sí soporta parámetros por defecto (ver Valores por defecto de de los parámetros para más información). PHP4 soporta ambos: ver Listas de longitud variable de parámetros y las referencias de las funciones func_num_args(), func_get_arg(), y func_get_args() para más información.

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Funciones Con Argumentos Variables...
« Respuesta #5 en: Domingo 29 de Enero de 2006, 18:48 »
0
Gracias hernanvid, eso es lo que buscaba, aunque la verdad, en lo que estoy haciendo, llegue a la misma conclusion que Avalon

Encontré esto en php.net, gracias a hernanvid
Código: Text
  1.  
  2. <?php
  3. function foo()
  4. {
  5.    $num_args = func_num_args();
  6.    echo "Numero de argumentos: $num_args\n";
  7. }
  8.  
  9. foo(1, 2, 3);    // Imprime 'Numero de argumentos: 3'
  10. ?>
  11.  
  12.  

Habrá que cambiar algunas cosillas  :D
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

gnfrs

  • Miembro MUY activo
  • ***
  • Mensajes: 195
    • Ver Perfil
    • http://www.laguns.com.ar/
Re: Funciones Con Argumentos Variables...
« Respuesta #6 en: Lunes 30 de Enero de 2006, 14:55 »
0
En PHP 4 se pueden pasar una cantidad ilimitada de parámetros a una función, la declaración de la función no depende de la cantidad de argumentos pasados.

Si una función puede recibir n argumentos, ésta también puede recibir n+1 argumentos siendo n un número mayor o igual a 0 (cero).

Las funciones para recuperar los valores de los argumentos pasados son las que mencionó hernanvid.

Aquí hay información al respecto.

Saludos.
Gabriel S. Luraschi

·· Videos de Guns and Roses LAGUNS - Banda tributo a Guns N' Roses ··

.

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Funciones Con Argumentos Variables...
« Respuesta #7 en: Martes 31 de Enero de 2006, 12:41 »
0
Interesante, gracias por la información. Siempre se aprende algo nuevo :comp:

Salu2,
Avalon