Hola,
Bueno, lo que yo haria seria una de estas 2 cosas:
- Pasar los parametros en un array asociativo nombre/valor:
Código PHP:
function f ($param=array()) {
$valores=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); // los valores por defecto de los parametros
foreach ($param as $clave => $valor) {
$valores[$clave]=$valor;
}
// y luego usamos ese array para los parametros
echo $valores['a'];
// o hacemos un extract() para tenerlos como variables
extract($valores);
$calculo=$a*$b-$c;
echo $calculo;
}
f (array('c'=>55,'a'=>2));
Por supuesto, se puede añadir la comprobacion de que los indices de $param existen en el array $valores.
- O en caso de existir un valor 'no valido' para el parametro (por ejemplo 0 o ''), pasar ese valor para los que no quieres pasar que estan entre otros que quieres pasar:
Código PHP:
function f($a=1,$b=2,$c=3,$d=4,$e=5) {
if (''==$a) $a=1;
if (''==$b) $b=2;
if (''==$c) $c=3;
if (''==$d) $d=4;
if (''==$e) $e=5;
$calculo=$a*$b-$c;
echo $calculo;
}
f('',33,'',44);
La "pega" es que tienes que modificar el cuerpo de la funcion.
Saludos.
PD: El codigo lo he puesto segun salia de mi cabeza. Puede que haya otras formas.
PD2: Quizas haya mas info en
http://www.php.net/manual/en/function.func-get-args.php