Veamos una función que permite argumentos opcionales:
Código
<?php
// Funcion que acepta 2 parametros opcionales
function dummy($parm1 = '', $parm2 = '') {
echo "Parametro 1: $parm1 <br />";
echo "Parametro 2: $parm2 <br />";
}
dummy('Hola','mundo!');
?>
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
<?php
// La lista de argumentos es vacia
function sinArgumentos() {
// Devuelve un array con los argumentos
// pasados a la funcion
$argumentos = func_get_args();
foreach ($argumentos as $k => $v) {
echo "Argumento: ".($k+1).": $v <br />";
}
}
sinArgumentos();
// No imprime nada
sinArgumentos('Hola', ' mundo ',' maravilloso!');
// Imprime los argumentos pasados
?>
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
<?php
function suma(){
$s=0;
foreach(func_get_args() as $a) $s+= is_numeric($a) ? $a : 0;
/*
* Comprueba si el valor introducido es un numero,
* si no, se toma como un cero
*/
return $s;
};
print suma(1,2,3,4,5,6,7,9,10); // Devuelve 47
print suma(1,3,3,7); // Devuelve 14
print suma(false,array(),5,5);
/*
* Devuelve 10, ya que, el array y false lo
* toman como un cero
*/
?>
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.










Autor





En línea



. Si lo hubieras puesto hace una semana me habria sido mejor porke estaba buscando esto mismo y lo termine por encontrar Google-ando.