0

私はこれに困惑しており、私の検索は関連するものを見つけていません..2つの変数のいずれかが真である場合に続行するwhileループを実行する必要があります...私があなたにできないと言うことができる限り"while ($var = '' and $var2 = ''); だから私はこれを試しました。 $i >= 4)、しかし、これは無限ループを与えるだけです:

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

4 に答える 4

2

次のような構成を探していますか?

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

いずれかの条件が真である間、それは実行され続けます。

于 2010-07-13T19:09:58.357 に答える
2

以下が機能しないのはなぜですか?

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

while 括弧内の式が true である限り、ループが実行されます。

于 2010-07-13T19:10:27.413 に答える
1

while ステートメントはブール式を評価します。あなたは書き出すことができるはずです:

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

また、コード (ac/p の場合) には、$continue = 1 があります。これは常に true と評価されます。

編集:

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

最後の部分については、私には無限ループのように見えます。

于 2010-07-13T19:08:37.477 に答える
0

$continue 変数は必要ありません。これでうまくいくはずです:

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

これにより、常にループが少なくとも 1 回実行されることに注意してください。$status が 'true' として開始される可能性があり、ループを 0 回実行する場合は、次のようにします。

$i = 1;
while ($status != 'true' && $i < 4) {
    //do other stuff here (possibly changing the value of $status)
    echo 'output';
    $i++;
}
于 2010-07-13T20:00:07.410 に答える