PHP создает цикл while, который зависит от нескольких переменных, которые не зависят друг от друга? - PullRequest
0 голосов
/ 13 июля 2010

Я поставлен в тупик, и мои поиски не дают ничего релевантного ... Мне нужно сделать цикл while, который продолжится, если любая из 2 переменных верна ... насколько я могу сказать, вы можете 't сделать "while ($ var = '' и $ var2 = ''); поэтому я попробовал это, в основном я решил, что могу просто установить 2 различных оператора if, чтобы он мог изменить переменную" continue ", если она прошла за 4".итераций (если $ i> = 4), однако это просто дает бесконечный цикл:

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

Ответы [ 4 ]

2 голосов
/ 13 июля 2010

Вы ищете такую ​​конструкцию:

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

Это будет продолжаться, пока выполняется одно из условий.

2 голосов
/ 13 июля 2010

Почему бы не сработать следующее:

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

Пока выражение в аргументе while parens имеет значение true, цикл будет выполняться.

1 голос
/ 13 июля 2010

Оператор while вычисляет логическое выражение.Вы должны быть в состоянии написать:

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

Также в вашем коде (если это ac / p) у вас есть $ continue = 1. Это всегда будет иметь значение true.

EDIT:

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

Что касается последнего времени, то для меня это просто бесконечный цикл.

0 голосов
/ 14 июля 2010

Вам не нужна переменная $ 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++;
}
...