Attenzione: Assegnazione in condizioni
-
23-08-2019 - |
Domanda
Una cosa che ha sempre ostacolato me è che al momento del check i miei script PHP per problemi ottengo l'avvertimento "bool-assegnazione: Assegnazione in condizione" e ottengo loro un sacco. per esempio:.
$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
$guests[] = $row['name'];
C'è un modo diverso per ottenere multipli o tutte le righe in un oggetto o un array? O c'è niente di sbagliato in questo metodo?
Soluzione
prova a fare questo, invece:
$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false)
$guests[] = $row['name'];
Credo php sta avvertendo a causa del $ row = mysql_fetch_assoc ($ result) non ha restituito un valore booleano.
Altri suggerimenti
In realtà, credo che è di avviso perché si potrebbe fare un errore. Normalmente in un condizionale, hai intenzione di fare:
if (something == something_else)
Ma è facile fare un errore e andare:
if (something = something_else)
Quindi è probabile che si avverte. Se PHP è niente affatto come C, è possibile risolvere il problema con una serie di parentesi attorno sua dichiarazione, in questo modo:
while(($row = mysql_fetch_assoc($result)))
Credo che la risposta di Jeremy è un po 'fuori, perché PHP è liberamente digitato e in genere non perdere tempo con queste distinzioni.