有一件事总是让我感到困惑的是,当我检查我的php脚本中的问题时,我收到警告“bool-assign:Assignment in condition”,我得到了很多。 e.g:
$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
$guests[] = $row['name'];
是否有不同的方法可以将多个或所有行放入对象或数组中?或者这种方法没有错?
答案 0 :(得分:13)
尝试这样做:
$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false)
$guests[] = $row['name'];
我相信php是警告,因为$ row = mysql_fetch_assoc($ result)没有返回布尔值。
答案 1 :(得分:3)
实际上,我相信这是警告,因为你可能犯了一个错误。通常在有条件的情况下,你的意思是:
if (something == something_else)
但是很容易犯错并且去:
if (something = something_else)
所以它可能会警告你。如果PHP完全像C一样,你可以用你的语句周围的一组括号来修复你的问题,如下所示:
while(($row = mysql_fetch_assoc($result)))
我相信Jeremy的回答略有不同,因为PHP的类型很松散,并且通常不会为这些区别而烦恼。