![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
10/05/2007, 09:18
|
| | Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 19 años Puntos: 10 | |
Re: ¿Cómo evitar el mensaje de error cuando aún no está definida la variable? Al hacer if( SENTENCIA ) {}
Se evalúa si el contenido de SENTENCIA es verdadero (1, cualquier string no vacía, true, un array, un objeto...) o falso (el resto).
Al preguntar por $submit, si no existe te lanza un notice: Undefined variable.
Para evitar el informe del error (aun existiendo) puedes preceder la parte problemática de @, que queda muy bonito, no se ve, ocupa poco espacio y además es una mala práctica ;)
Lo realmente bueno es el orden de operadores. Por ejemplo, && opera de izqda. a derecha. Si lo de la izquierda es falso ya no se evalúa lo de la derecha.
Por lo tanto, es lo mismo para el que lo vea decir (excepto porque sigue dando el error):
if(!@$submit) {
// CODE
}
que decir
if(isset($submit) && $submit) {} else {
//CODE
}
o incluso
if(!isset($submit) || !$submit) {
// CODE
}
Si no recuerdo mal, el operador || también actúa de izquierda a derecha.
Sin embargo, la sentencia:
if(!isset($submit)) {
// CODE
}
Podría servirte en algunos casos, pero recuerda que, al contrario que en los otros ejemplos, si la defines a cero ($submit = 0; o $submit = false; o $submit = null;) está definida y por tanto pasaría la validación, aunque muchas veces no quieras eso.
Espero haberte ayudado. Un saludo. |