single = on while循环

时间:2011-05-04 19:44:44

标签: php operators while-loop

我现在正在练习php。我有一个问题。

我在某些while循环中看到一个 = 。经常在mysql查询。那它代表什么呢?

两个 == 表示平等。但单个 = ?你能告诉我这背后的逻辑吗?

6 个答案:

答案 0 :(得分:11)

=表示“分配”。赋值始终分配给变量并返回结果。所以,例如:

while($row = mysql_fetch_array($results)) {
    // ...
}

mysql_fetch_array($results)返回有效数组时,它会循环。当它返回null(意味着结果的结尾)时,循环退出。

答案 1 :(得分:3)

while ($row = mysql_fetch_row($query))
{
    //do stuff
}

这会一直查询结果句柄,直到找到NULL值(结果结束)。 $row然后包含从调用中获取的行,以便可以用于处理。

它也是检查NULL结果的“简写”:

while (($row = mysql_fetch_row($query)) != null)
{
    //do stuff
}

它也可以替换for循环:

for ($i = 0; $i < mysql_num_rows($query); $i++)
{
    //do stuff
}

一切都是等价的。

答案 2 :(得分:2)

single =用于作业

$a = 9;

==用于比较

if($a == 9) echo 'hello';

http://www.w3schools.com/PHP/php_operators.asp

答案 3 :(得分:1)

这是作业运算符。

答案 4 :(得分:0)

虽然'x'的当前值可以成功分配给变量'y',但请继续。

答案 5 :(得分:0)

这是另一种选择:

$row = mysql_fetch_assoc($thing);
while (isset($row)) {

  // do stuff

  $row = mysql_fetch_assoc($thing);
}

你可以看到它的输入更少(代码可能更有效):

while (($row = mysql_fetch_assoc($thing)) != null) {
  // do stuff
}