-1

これが私がやっていることです(php)

<?php

for($i = 0; $i <= 30; $i+2)
{
  echo $i;
}
?>

それは私を夢中にさせます、なぜならそれは機能しないからです[何も印刷せず、ブラウザは読み込みを試み続けます]。しかし、 に変更$i+2する$i++と動作し、 に変更すると$i+1動作しません。

私は頭がおかしいです。何がうまくいかないのですか?

4

4 に答える 4

4

それは私を夢中にさせます、なぜならそれは機能しないからです[何も印刷せず、ブラウザは読み込みを試み続けます]。しかし、 に変更$i+2する$i++と動作し、 に変更すると$i+1動作しません。

$i++と同等です$i = $i + 1。代入演算子に注意してください。=ここには存在$i + 2しません 追加しますが、更新しません ...

$iは更新されないため、無限ループが発生し、スクリプトが処理の許容時間に達して終了する可能性があります。

http://php.net/manual/en/function.set-time-limit.php

スクリプトの実行を許可する秒数を設定します。これに達すると、スクリプトは致命的なエラーを返します。デフォルトの制限は 30 秒です。存在する場合は、php.ini で定義されている max_execution_time 値です。

于 2012-06-26T05:01:47.043 に答える
2

各反復の後に、forループにインクリメント/デクリメント値を指定する必要があります。$ i+2はiの値を変更しません。したがって、この場合に発生しているのは、forループが、連続する反復ごとに同じ値のiを検出することです。その結果、終了条件が満たされることはありません。したがって、forループは無限ループでスタックします。

変更:または$i+1に。$i=$i+1$i+=1

$i++実際にはを意味し$i=$i+1ます。

于 2012-06-26T06:28:25.953 に答える
2

またはに変更$i+2する必要があります。 を意味します。$i = $i + 2$i += 2$i++$i += 1

for($i = 0; $i <= 30; $i += 2)
{
  echo $i;
}
于 2012-06-26T05:00:26.813 に答える
1

は に等しい$i=$i+2ため、に変更する必要があります。$i++$i=$i+1

于 2012-06-26T05:04:33.777 に答える