当我使用带有额外条件的mysql_fetch_assoc应用while循环时,为什么$ row为空,但是当没有额外条件时,返回一些东西,这是否合乎逻辑?
while ($row = mysql_fetch_assoc($result)
&& $gen->getMailsSent() < 499) {
//blah blah
}
在上面的代码中,编译器输入循环,但$ row为空
while ($row = mysql_fetch_assoc($result)) {
//blah blah
}
在这一个,编译器仍然进入循环,但然后$ row返回一些东西,这对我来说我不明白并且不符合逻辑,有人可以解释为什么会发生这种情况吗?
答案 0 :(得分:3)
while (($row = mysql_fetch_assoc($result))
&& $gen->getMailsSent() < 499) {
//blah blah
}
试试这个。你的问题是优先的 - 你实际上告诉它
$row = (mysql_fetch_assoc($result) && $gen->getMailsSent() < 499)
请参阅http://php.net/manual/en/language.operators.precedence.php
“&安培;&安培;”在列表中的“=”之前,所以首先评估它。
答案 1 :(得分:1)
试
while (($row = mysql_fetch_assoc($result))
&& $gen->getMailsSent() < 499) {
//blah blah
}
实际上它不应该是空的,它应该是一个布尔值。
答案 2 :(得分:0)
Use while loop like this:
while (($row = mysql_fetch_assoc($result)) && ($gen->getMailsSent() < 499)) {
code goes here..
}
希望这会有所帮助..