PHP而(变量= mysql_fetch_assoc) - 解释
问题描述:
我一直在用C#工作,所以这是很奇怪,我说:PHP而(变量= mysql_fetch_assoc) - 解释
while($variable=mysql_fetch_assoc)
{ $X=$variable['A'];
$Y=$variable['B'];
}
如果是像一个普通的循环,则X,Y将与复位每一个循环,对吧?
我一直无法在PHP手册中查找它是如何工作的。我想在每个循环中它会前进到assoc.array的下一个元素。但通常在PHP中调用什么?我只是不习惯看循环条件中的'='。
答
这意味着什么“,直到你可以mysql_fetch_assoc()
从您传递给该函数的变量的元素,然后执行while循环体。
它返回一个数组,如果能找到一个元素,FALSE
否则,这样你就可以退出循环。
答
分配在PHP是一个返回已分配的值。如果某行被检索,那么结果将是不假的表达,这将使循环继续。
答
mysql_fetch_assoc()
(及其相关功能)预先$result
每次被调用时的内部指针。因此每次检查while
条件时,$variable
将被分配一个新的行数组。最后一行返回后,mysql_fetch_assoc()
不能再使内部指针前进,因此下一次尝试调用它将返回false
。一旦$variable
成为假,条件不再满足,循环退出。
在PHP(也称为JavaScript等)中,只要它不计算为零,即空字符串NULL
或false
,条件就为真。它不必评估为布尔值。这就是为什么这样的循环有效。
编辑:
如果是像一个普通的循环,则X,Y将与每一个循环复位,对不对?
是的,他们将被重新分配每个新提取的新值。
答
也许看这样的代码将是有益的:
while (($variable = mysql_fetch_assoc($result)) == true) {
// loops until the fetch function returns false (no more rows)
// $variable will have be an associative array containing the 'next' row from the recordset in $result
}
它是这样做的简写方式:
$variable = mysql_fetch_assoc();
while ($variable) {
// loop
$variable = mysql_fetch_assoc();
}
答
正是这种代码的只是短期形式:
$variable = mysql_fetch_assoc($res);
while($variable != FALSE) {
// do something
$variable = mysql_fetch_assoc($res);
}
这只是一个$变量,每个循环都可以重置。 – 2010-05-27 07:37:33
这只是一个任务。分配恰好会返回上次分配的值。 – BoltClock 2010-05-27 07:50:43
在PHP(以及大多数其他脚本语言)中,变量赋值可以被认为是一个隐式函数调用,其中返回值就是您指定的值:'$ a =($ b = 7)'将赋值为'7' $ b和$ a。 – 2010-05-27 12:07:53