Php 而循环和多个条件

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

可以在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<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))