1

私はこの単純なループを持っています:

for ($user = 1; $user <= 219; $user++)
{    
    echo "Yo <br />";
    $pos = 1;
    echo "Set pos to $pos <br />";
    do
    {
        echo "Doing user $user , $pos <br />";
        $pos++;
    }
    while ($pos <= 8);

    echo "Done user $user ,  $pos <br /><br ";
}

これを実行すると、最初の反復でのみ最初の「yo」がエコーされます。2 から 219 までの反復ごとに、出力は から始まりSet pos to $posます。サンプル:

Yo 
Set pos to 1 
Done user 1 , 9 

Set pos to 1 
Done user 2 , 9 

Set pos to 1 
Done user 3 , 9 

Set pos to 1 
Done user 4 , 9 

Set pos to 1 
Done user 5 , 9 

この声明に何が起こったのか:

    echo "Yo <br />";

最初の反復でのみ実行され、他の反復では実行されないのはなぜですか?

4

2 に答える 2

6

これは反復ごとに実行されます<br />。最後に閉じるのを忘れていました。

echo "Done user $user ,  $pos <br /><br />";

したがって、ページのソースを確認すると、次のように表示されます。

<br Yo <br />
于 2013-07-02T01:32:24.480 に答える
0

あなたecho "Yo <br />"do{}ループ内にいた場合、 の直前に、すべての反復で実行されます"Doing user [etc.]"。今はループの中ではなく、do{}ループの中だけfor()です。

$posそのため、 8 を超えた後にのみ "Yo" が表示され、forループが別の反復を開始します。

于 2013-07-02T01:33:56.327 に答える