Cita:
Iniciado por guardarmicorreo
Código PHP:
Ver original//aquí y en este momento cero es un valor
$a=0;
//en PHP dentro de la condición 'if' '0' es igual a 'null' y "", es decir, lo interpreta como que no hay valor, lo puedes comprobar así
$a=0;
if ( $a== "" ) //también if ( $a== null )
{
echo $a;
}
//imprimirá 0
"Aqui y en este momento 0 es un valor".
En un post anterior decías:
Cita: tienes razón, no se imprime porque 0, "" y null no son valores.
No.cero es un valor, aqui, en este momento, mañana y pasado.Y "" es un valor.Y la cadena "0" es un valor.Sólo admitiría una discusión cuasi filosófica de null.
Por supuesto, 3 líneas más abajo de tu código, 0 sigue siendo un valor.
Pero, varios post más tarde, la frase
Cita: pero simplemente con la variable lo que va a pasar es que independientemente de su valor si es declarada, si existe, entonces va a suceder lo que hay debajo del if.
Sigue sin ser cierta...vamos, no sé cómo estamos discutiendo esto...cae por su peso...
Cita: !== me dirá que 0 no es idéntico a false porque no son del mismo tipo pero son iguales después de la conversión a tipos que 'if' somete al número 0.
Seguro que lo que es "sometido" a conversión de tipos es 0?..Yo no lo tendría tan claro...Y si php, tal y como hace C, considerse cierto todo aquello cuyo cast a *entero* no sea cero?Incluidas las constantes TRUE y FALSE..?...Porque eso es lo que hace PHP....
Cómo funciona if, lo tengo más o menos claro..El asunto es que, al OP se le estaba diciendo algo que *no* es cierto. No hay ninguna diferencia entre el código con y sin "!=false".
Cita: en cambio en el segundo if estás diciendo que "si $a es igual a false..." y solo a false, discriminas el resto de valores y solo aceptas false.
saludos! :)
...claro...y si quieres cualquier cosa que no sea false, y haces if($a) , es perfectamente correcto...
No entiendo dónde quieres llegar con tu post.