Advertencia: Asignación en la condición
-
23-08-2019 - |
Pregunta
Una cosa que siempre ha pinchado mí es que al comprobar mis scripts PHP para problemas consigo la advertencia "bool-asignar: Asignación en buenas condiciones" y los consigo mucho. por ejemplo:.
$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
$guests[] = $row['name'];
¿Hay una manera diferente para obtener múltiples o todas las filas en un objeto o una matriz? O hay nada malo con este método?
Solución
Trate de hacer esto en su lugar:
$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false)
$guests[] = $row['name'];
Creo php está advirtiendo a causa de la fila $ = mysql_fetch_assoc ($ resultado) no devolver un valor lógico.
Otros consejos
En realidad, creo que está avisando, ya que podría estar cometiendo un error. Normalmente en un condicional, que quiere decir que hacer:
if (something == something_else)
Pero es fácil cometer un error e ir:
if (something = something_else)
Así que es probable que le está avisando. Si PHP es nada en absoluto como C, puede arreglar su problema con un conjunto de paréntesis alrededor de su declaración, así:
while(($row = mysql_fetch_assoc($result)))
Creo que la respuesta de Jeremy es un poco fuera, debido a que PHP está vagamente escrito y en general no se molesta con tales distinciones.