PHP - parametros opcionales

 
Vista:

parametros opcionales

Publicado por lucho (3 intervenciones) el 26/10/2007 15:15:37
Existe alguna forma de que yo teniendo por ejemplo en una funcion tres parámetros opcionales, pueda yo elegir a la hora de llamarlo, cual de los parametros quiero setear dejando los demás por defecto...por ejemplo a mi lo que me interesa es esto....

<?php
function param ($uno = 1,$dos = 2,$tres = 3){
print ('imprimo el valor '.$uno.'<br>');
print ('imprimo el valor '.$dos.'<br>');
print ('imprimo el valor '.$tres.'<br>');
}

print('Sin Parametros...'.'<br>');
param();
print ('con el segundo parametro seteado <br>');
param(null,$dos = 3,null);
?>

Con null no funciona....puesto que toma null como valor....y yo lo que quiero es que tome el valor por defecto

Desde ya muchas gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:parametros opcionales

Publicado por camilo (30 intervenciones) el 26/10/2007 15:47:54
param("",$dos = 3,"");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parametros opcionales

Publicado por lucho (3 intervenciones) el 26/10/2007 15:53:56
Gracias, pero si lo llamo de esa manera imprime esto...
y no es lo que quiero...

"imprimo el valor
imprimo el valor 3
imprimo el valor "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parametros opcionales

Publicado por Diego Romero (1450 intervenciones) el 26/10/2007 17:39:15
Para que eso funcione PHP requiere que no pases ningún parámetro en la posición que está declarada con valor por omisión (y se dice "por omisión" y no por defecto, vamos, que PHP no tiene "defectos" ;)), ni null ni vacío sino que directamente no pases nada.

Pero claro, esto tiene un problema, si haces la llamada así:

Param(4);

¿Cómo va a saber a cuál de los tres parámetros estás llamando?, pues al primero. La regla es que los parámetros por omisión se tienen que declara al final.

Param(4,5);

Das valor al primer y segundo parámetro dejando el tercero por omisión, pero no puedes hacer esto:

Param(,5,6);

Pretendiendo dejar el primero y dando valor al segundo y tercero (eso es un error de sintaxis).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parametros opcionales

Publicado por sk@rx (1 intervención) el 14/08/2008 19:28:43
Si ya se que el post es viejo pero muchos se preguntan esto:

Tenes que hacer el siguiente cambio a tu codigo

<?php
function param ($uno = null ,$dos = null,$tres = null){
$uno = $uno != null? $uno : 1;
$dos = $dos != null? $dos : 2;
$tres= $tres != null? $tres : 3;
print ('imprimo el valor '.$uno.'<br>');
print ('imprimo el valor '.$dos.'<br>');
print ('imprimo el valor '.$tres.'<br>');
}

print('Sin Parametros...'.'<br>');
param();

print ('con el segundo parametro seteado <br>');
param(null,$dos = 3,null);

?>

Y asi obtenemos ...

Sin Parametros...
imprimo el valor 1
imprimo el valor 2
imprimo el valor 3
con el segundo parametro seteado
imprimo el valor 1
imprimo el valor 3
imprimo el valor 3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar