PHP创建一个依赖于彼此独立的多个变量的while循环?

时间:2010-07-13 19:06:20

标签: php if-statement infinite-loop

我对此感到困惑,我的搜索没有发现任何相关的内容。我需要做一个while循环,如果2个变量中的任何一个为真,它将继续...我可以告诉你可以'做一个“while($ var =''和$ var2 ='');所以我试过这个,基本上我想我可以设置2个不同的if语句,这样如果它超过4就会改变变量”continue“迭代(如果$ i> = 4),但这只是给出一个无限循环:

function whiletest () {
    $i = 1;
    do {
        echo 'output';
        if ($status != 'true') {
            $continue = 1 ;
        } 
        if  ($i >= 4) {
            $continue = 2 ;
        }
        $i++ ;
    } while ($continue = 1 );
} 

4 个答案:

答案 0 :(得分:2)

您是否正在寻找这样的结构:

while($var1 == 'value1' OR $var2 == 'value2') {
    ...
}

当任一条件成立时,这将继续运行。

答案 1 :(得分:2)

为什么以下不起作用?

while (($condition1) || ($condition2)) {
    // loop stuff
}

只要while parens中的表达式为true,循环就会执行。

答案 2 :(得分:1)

while语句计算布尔表达式。你应该写出:

while( ($status != true) && ($continue == 1) ) {}

同样在你的代码中(如果它是一个c / p),你有$ continue = 1.这将总是评估为真。

编辑:

while (($status) && ($i < 4))

至于最后一次,它对我来说只是一个无限循环。

答案 3 :(得分:0)

您不应该需要$ continue变量。这应该可以解决问题:

$i = 1;
do {
    //do other stuff here (possibly changing the value of $status)
    echo 'output';
    $i++;
} while ($status != 'true' && $i < 4);

请记住,这将始终至少运行一次循环。如果$ status可能以“true”开头,并且您希望循环运行零次,如果是,则需要:

$i = 1;
while ($status != 'true' && $i < 4) {
    //do other stuff here (possibly changing the value of $status)
    echo 'output';
    $i++;
}