mi declaración "si" devuelve falso incluso si es verdadero, ¿por qué?
Frecuentes
Visto 345 veces
0
$status devuelve 0, pero el bucle actúa como su "1". Lo curioso aquí es que mi mensaje de error es "MySQL DB está en uso (estado 0)".
En otras palabras: mi declaración if falla incluso si es verdadera.
¿Dónde está el error?
include 'status_check.php'; //it takes $check from MySQL DB
if($status = "0") { //if status is 0 go on
include 'status_1.php'; //set status to 1
...
include 'status_0.php'; //after finished operation set status back to 0
} else { //if status is 1 say that its 1
echo "MySQL DB is in use (status ". $status .")";
die;
}
1 Respuestas
17
Estás asignando, no comparando.
if($status = "0") {
Haz eso ==
para una comparación.
Por lo tanto, es falso porque la cadena "0" se trata como un valor "falso" en PHP. Documentos: http://php.net/boolean#language.types.boolean.casting
contestado el 03 de mayo de 12 a las 15:05
Probablemente deberías explicar por qué $status = "0"
evalúa a false
también. - Jon
@Jon señaló. Gracias por la sugerencia. - Wiseguy
if($status = '0') es falso, porque es como decir if('0') - Mirko Akov
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql or haz tu propia pregunta.
Te falta un signo igual. - Jon
($status == "0")
¡Igualdad, no asignación! - Michael BerkowskiUse el signo "igual":
if($status == "0")
- Aleks G