Hola,
Eso es cierto, vuelvo a mi código:
Cita: if( $_GET["var"]) da VERDADERO porque toda
variable que tenga un valor diferente de cero,
en este caso es "Gonzalo" equivale a un true.
La conversión es AUTOMATICA.
Esto es en el caso de que $_GET['var'] este definida. Pero cuando no este definida si puede dar una noticia php cuando se usa error_reporting(E_ALL).
Eso es cierto. Pero
no significa que afectan la lógica de funcionamiento, PARA NADA ni que den errores lógicos porque yo si configuro a error_repoting así:
error_reporting(
E_STRICT); Pues ya no salen las noticias
(NO SON ERRORES).
Con respecto a usar E_STRICT y evitar que salgan las noticias para mi tiene sus ventajas. A otros esta configuración hace que en grandes script se vuelva locos, pero todo depende de la lógica y las estrategias que usa el programador. No podemos decir de manera definitiva que una es mejor que otra.
Entonces, si la configuración es E_STRICT correrá por cuenta de uno validar las variables y no dejar que ellas corran solas.
Con una configuración en E_ALL por ejemplo se haría algo así:
$var = isset($_GET['var']) ? $_GET['var'] : false;
if ($var)... ya fue definida anteriormente. O podrá hacer de manera directa:
if (isset($_GET['var'])) ...
POr medio de este ejemplo ya usado nos aseguramos que $var esté definida (con una configuración en E_ALL) no salga el reporte de noticia de PHP.
Pero con E_STRICT desde
MI PUNTO DE VISTA es más sencillo hacerlo así:
if ($_GET['var']) {
ejecuto...
}
else {
No existe o es cero
}
if ($_GET['var']) da false si esa variable no existe y no tira ningun reporte con E_STRICT.
Entonces el programador controla de manera directa las variables y PARA MI es mucho más sencillo.
Por algo PHP tambien trae la opción E_STRICT.
E_STRICT = "Habilite este valor para hacer que PHP sugiera cambios en su código que velarán por la mejor interoperabilidad y por mantener la compatibilidad de su código".
O usar (E_ALL & ~E_NOTICE)
PD: Ya que estamos
nicolaspar me guataría que aclares por qué dices que
$foo = array("hello"=>"word"); estaría mal y cómo estaría bien usarlo.