PHP: Evitare il warning "Assignment in condition"

Alcuni framework o IDE, come ad esempio Zend Studio, danno un warning del tipo "Assignment in condition" quando si scrive un codice simile a questo:
$sql = 'SELECT * FROM tabella';
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
	//Codice da eseguire sulla singola riga
}


Questo problema avviene perché potrebbe trattarsi di una dimenticanza del doppio uguale.
if ($var = 1) {
	//Questo codice viene eseguito sempre
}
if ($var == 1) {
	//Questo codice viene eseguito solo se $var è uguale a 1
}


Per ovviare a tutto ciò (che non dovrebbe dare problemi di funzionamento, ma solo fastidiosi avvisi) si deve creare una condizione che non possa essere confusa con un errore.
Il codice iniziale diventerà così:
$sql = 'SELECT * FROM tabella';
$result = mysql_query($sql);
while (($row = mysql_fetch_assoc($result)) != false) {
	//Codice da eseguire sulla singola riga
}

Guida scritta da il 24/02/2012.

Le ultime guide della categoria PHP:

comments powered by Disqus