[英]No condition in PHP while loop?
所以,我正在使用PHP构建我的第一个超级基本CMS。 我不想简单地复制我正在观看的教程中的代码,但我真的很了解它。 困扰我的一件事是使用while循环来获取帖子。 在下面的代码中,我无法看到圆括号内的语句如何构成条件。 在我看来它所做的就是为变量$ post分配一个数组。 我想,你怎么能循环不是条件的东西是我的问题。 谢谢!
function get_posts () {
$query = mysql_query("SELECT * FROM posts") or die(mysql_error());
while ($post = mysql_fetch_assoc($query)) {
echo $post['Content'];
}
}
基本上你要获取新行并将其分配给$post
变量:
while ($post = mysql_fetch_assoc($query))
返回值
返回与获取的行对应的字符串关联数组,如果没有其他行,则返回FALSE 。
因此,当mysql_fetch_assoc
返回false
它被分配给$post
变量,然后在while
内进行评估,然后循环停止。
正如mysql_fetch_assoc手册页中所述:
返回值:返回与获取的行对应的字符串关联数组,如果没有其他行,则返回FALSE。
while ($post = mysql_fetch_assoc($query))
意味着第一个$ post获得一个值。 当出现错误时,mysql_fetch_assoc返回false。
while循环检查$ post是否为false,可以为true,整数,数组等。
它是PHP的一部分。 赋值的结果是赋值。 这允许这样的事情:
$x = $y = $z = 7;
它为所有3个变量分配7
。 因此,给定
while($row = mysql_result(...)) {
当没有更多要提取的数据时,mysql_result将返回行数据数组或布尔值false。 该数组/布尔值分配给$ row。 由于这个赋值包含while(),所以array / boolean传播到while()。
如果你得到一行数据,那么这是一个被while处理为布尔值的数组,并且循环继续。 如果没有更多数据,mysql_fetch返回一个布尔值false,它被赋值给$ row,而false也是赋值的结果,这意味着while()得到一个FALSE,并且循环终止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.