Evite pasar variables preestablecidas para funcionar en PHP

Me gustaría hacer mi vida más fácil evitando pasar algunas variables preestablecidas a una función en PHP.

Por ejemplo, esto funciona:

function test1($var2,$var3,$var1=1){
    return '$var1='.$var1.'+$var2='.$var2.'+$var3'.$var3;
}
echo test1($var2=2,$var3=3);
#$var1=1+$var2=2+$var33

Pero esto no (sin las advertencias):

function test($var1=1,$var2,$var3){
    return '$var1='.$var1.'+$var2='.$var2.'+$var3'.$var3;
}
echo test($var2=2,$var3=3);
#Warning: Missing argument 3 for test(), called in /var/www/atpc.info/f/f/m/t.php on line 6 and defined in /var/www/atpc.info/f/f/m/t.php on line 3
#Notice: Undefined variable: var3 in /var/www/atpc.info/f/f/m/t.php on line 4 
#$var1=2+$var2=3+$var3

Quizá la única forma de que esto suceda sea siempre poner al final de la línea las variables preestablecidas. ¿Lo es?

Gracias por cualquier luz.

preguntado el 22 de mayo de 12 a las 18:05

lo que hago cuando necesito algo como esto es pasar una matriz asociativa con las opciones. -

4 Respuestas

Oye... eso es no cómo pasas variables en PHP....

Para enviar variables:

function test($var1=1,$var2=1,$var3=1){ //default 1, 1, 1
    return '$var1='.$var1.'+$var2='.$var2.'+$var3'.$var3;
}
echo test(2,3); //only sent for var1 and 2
echo test(null, 2, 3); //only sent for var2 and 3    
echo test(); //default for all

contestado el 22 de mayo de 12 a las 18:05

Los valores predeterminados deben aparecer después de los valores no predeterminados, como se muestra en el ejemplo 5 en la página de argumentos de la función en PHP.net.

contestado el 22 de mayo de 12 a las 18:05

Trate de examinar variable function arguments in PHP.

contestado el 22 de mayo de 12 a las 18:05

@FranciscoCorrales, esta es obviamente una consulta de búsqueda. Debe ser lo suficientemente inteligente como para copiarlo en el portapapeles y pegarlo en su motor de búsqueda favorito. A aprender la respuesta siempre es mejor que una resolver respuesta. - Pavel S.

bueno, no es tan obvio para mí, 'buscar' funcionaría, 'examinar' no dio ninguna pista. Me encanta tanto aprender la respuesta como resolver la respuesta, tanto la solución como la explicación... Gracias. - Francisco Corrales Morales

Puede facilitarle la vida, pero puede resultar en un código descuidado en el que, en algunos puntos, DEBERÍA pasar un parámetro y lo olvida, pero el código no arroja ningún error. Esa es mi opinión.

contestado el 22 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.