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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Funciones con número arbitrario de argumentos [PHP]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Funciones con número arbitrario de argumentos [PHP]  (Leído 5,088 veces)
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Funciones con número arbitrario de argumentos [PHP]
« en: 6 Marzo 2011, 20:44 pm »

Como muchos ya sabréis, PHP permite definir funciones con parámetros opcionales, otra funcionalidad que no es tan conocida, es que permite crear funciones que aceptan un numero arbitrario de parámetros.

Veamos una función que permite argumentos opcionales:
Código
  1. <?php
  2. // Funcion que acepta 2 parametros opcionales
  3. function dummy($parm1 = '', $parm2 = '') {
  4. echo "Parametro 1: $parm1 <br />";
  5. echo "Parametro 2: $parm2 <br />";
  6. }
  7. dummy('Hola','mundo!');
  8. ?>

Ahora vamos a ver como crear una función que acepte cualquier numero de argumentos, para ello vamos a utilizar la función func_get_args , que devuelve un array numérico con los argumentos pasados a la función.

Código
  1. <?php
  2. // La lista de argumentos es vacia
  3. function sinArgumentos() {
  4.  
  5. // Devuelve un array con los argumentos
  6. // pasados a la funcion
  7. $argumentos = func_get_args();
  8.  
  9. foreach ($argumentos as $k => $v) {
  10. echo "Argumento: ".($k+1).": $v <br />";
  11. }
  12.  
  13. }
  14.  
  15. sinArgumentos();
  16. // No imprime nada
  17.  
  18. sinArgumentos('Hola', ' mundo ',' maravilloso!');
  19. // Imprime los argumentos pasados
  20.  
  21. ?>


Esta función nos puede ser muy útil si pensamos crear un pequeño framework o librería. Abajo dejo otro ejemplo con una función que suma un numero indefinido de números.

Código
  1. <?php
  2.  
  3. function suma(){
  4. $s=0;
  5. foreach(func_get_args() as $a) $s+= is_numeric($a) ? $a : 0;
  6. /*
  7.  * Comprueba si el valor introducido es un numero,
  8.  * si no, se toma como un cero
  9.  */
  10. return $s;
  11. };
  12.  
  13. print suma(1,2,3,4,5,6,7,9,10); // Devuelve 47
  14. print suma(1,3,3,7); // Devuelve 14
  15. print suma(false,array(),5,5);
  16. /*
  17.  * Devuelve 10, ya que, el array y false lo
  18.  * toman como un cero
  19.  */
  20. ?>

No es nada del otro mundo pero nos puede venir muy bien este tipo de funciones en nuestras aplicaciones. Seguramente muchos ya conocían esta función.


En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Funciones con número arbitrario de argumentos [PHP]
« Respuesta #1 en: 6 Marzo 2011, 20:52 pm »

Interesante la función de los parámetros indefinidos.


En línea

Te vendería mi talento por poder dormir tranquilo.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Funciones con número arbitrario de argumentos [PHP]
« Respuesta #2 en: 6 Marzo 2011, 22:25 pm »

Bueno el articulo xD

Como lo dijiste, es muy útil la función para implementarla en librerías.

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
JungleBoogie

Desconectado Desconectado

Mensajes: 174


Metal Freak


Ver Perfil WWW
Re: Funciones con número arbitrario de argumentos [PHP]
« Respuesta #3 en: 6 Marzo 2011, 22:31 pm »

Muy buena funcionalidad, si señor  ;-) . Si lo hubieras puesto hace una semana me habria sido mejor porke estaba buscando esto mismo y lo termine por encontrar Google-ando.

Se deberis UPear de vez en cuando este tema, o bien realizar un tema recopilatorio de "trucos" parecidos y ponerle chincheta
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ver argumentos de funciones codeblocks
Programación C/C++
_niu 2 2,922 Último mensaje 15 Diciembre 2011, 21:57 pm
por _niu
Número arbitrario de entradas en C
Programación C/C++
placa4 3 2,794 Último mensaje 17 Marzo 2012, 00:43 am
por Caballo_Alado
Problema con argumentos por defectos en funciones.
Programación C/C++
anonimo12121 3 2,541 Último mensaje 25 Julio 2012, 14:18 pm
por overxfl0w13
Funciones con nº variable de argumentos - stdarg.h
Programación C/C++
SSantiago90 5 3,525 Último mensaje 6 Mayo 2013, 22:05 pm
por 85
[C++]Numero ilimitado de argumentos en funciones.
Programación C/C++
huchoko 7 2,551 Último mensaje 21 Octubre 2018, 18:30 pm
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines