Php 而循环和多个条件
可以在while循环中写入多个条件吗?如果没有,还有什么替代方案?我尝试了它,结果返回了一个与设置while循环条件的代码行相关的错误。这是我的意思的一个例子Php 而循环和多个条件,php,Php,可以在while循环中写入多个条件吗?如果没有,还有什么替代方案?我尝试了它,结果返回了一个与设置while循环条件的代码行相关的错误。这是我的意思的一个例子 $s = 1; while ($result_row = mysql_fetch_assoc($query) && $s < 5) { echo $result_row['id']; $s++; } $s=1; 而($result\u row=mysql\u fetch\u assoc($query)&&$s
$s = 1;
while ($result_row = mysql_fetch_assoc($query) && $s < 5)
{
echo $result_row['id'];
$s++;
}
$s=1;
而($result\u row=mysql\u fetch\u assoc($query)&&$s<5)
{
echo$result_行['id'];
$s++;
}
这是可能的,但由于=
的值低于&&
,因此需要括号以确保正确解释语句:
while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))
你可以试试:
$s=1
while ($result_row = mysql_fetch_assoc($query))
{
echo $result_row['id'];
$s++;
if($s>5){
break;
}
}
我看不出有什么不对。另一种方法是这样做
$s = 1;
while ($result_row = mysql_fetch_assoc($query))
{
if($s < 5) {
//enter the condition
}
$s++;
}
$s=1;
而($result\u row=mysql\u fetch\u assoc($query))
{
如果($s<5){
//输入条件
}
$s++;
}
可能将$result\u row
的值设置为布尔条件,即mysql\u fetch\u assoc($query)
是否返回真值,以及$s
是否小于5。因此,试图将$result\u行
作为字典阅读不再有效
您可以使用括号精确地指定如何解析内容:
while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))
while($result\u row=mysql\u fetch\u assoc($query))&($s<5))
这样,$result\u row
设置为mysql\u fetch\u assoc($query)
,这是您想要的,只要该赋值的逻辑值返回true ish,并且s
小于5,循环就会继续进行。确保这是可能的。你试过了吗?整个while
条件,无论其可能包含多少组件,都必须计算为真或假。这是唯一的要求。在这样的复合语句中执行赋值时要小心$result\u行
由于运算符优先级的原因,可能无法获得预期的结果。您的逻辑正确。错误到底是怎么说的?绝对有可能,就像其他控制结构一样。它只需计算为真或假。错误文本将告诉您问题所在。错误是什么?更好的是:链接的优先级不需要第二对内括号,因此建议将它们放在那里似乎有点误导。但是它们不会造成伤害。检查条件的顺序是从左到右。因此,首先确定要检查的内容。如果您不想先查询数据库,那么可以检查($s)
while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))