PHP開(kāi)発の基本的なチュートリアルのループステートメント
1. PHP ループ
コードを書(shū)くとき、同じコード ブロックを何度も実行する必要があることがよくあります?,F(xiàn)時(shí)點(diǎn)では、コード內(nèi)でループ ステートメントを使用してこのタスクを完了できます。
PHP では、次のループ ステートメントが提供されます:
while - 指定された條件が true である限り、コード ブロックはループ內(nèi)で実行されます。
do...while - コード ブロックは 1 回実行されます。ループ
for - コード ブロックを指定した回?cái)?shù)実行するループ
foreach - 配列內(nèi)の各要素に基づいてコード ブロックをループします
2. While ループ
while ループは、指定された條件が満たされるまでコード ブロックを繰り返し実行します。正しくありません
文法:
while (條件)
{
実行されるコード;
}
while ループを理解しましょう
コードロジックダイアグラムによる
まず條件が満たされているかどうかを判斷し、満たされている場(chǎng)合は続行します。條件が満たされなくなるまで中かっこ內(nèi)のコードを?qū)g行し、その後ジャンプします
例1 1から50までの整數(shù)を出力するループ
: ソースコードは次のとおりです<?php $i=1; while($i<=50){ echo $i." "; $i++; } ?>
例2: 1から100までのテーブルを出力し、インターレースの色変更を?qū)g現(xiàn)します関數(shù)
まずテーブル全體を出力します: ソースコードは次のとおりです以下<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php //定義循環(huán)的初始值 $i=0; //輸出表格 echo '<table width="800" border="1" >';//雙引號(hào)外面要套單引號(hào),雙引號(hào)會(huì)報(bào)錯(cuò) while($i<100){ //0 - 9 為一行 //10 -19 為一行 //因此,每一行的開(kāi)始都能夠被10求余后為零,如為10的時(shí)候,應(yīng)該顯示行開(kāi)始的標(biāo)簽 if($i%10==0){ //為了隔行變色,第2,4,6每行的顏色變過(guò)色的,因此我們又可以再進(jìn)行一次取余運(yùn)算 if($i%20==0){ //第1,3,5等行正常輸出 echo "<tr>"; }else{ //第2,4,6等行正常輸出 echo '<tr bgcolor="pink">';//雙引號(hào)外面要套單引號(hào),雙引號(hào)會(huì)報(bào)錯(cuò) } } echo "<td>"; echo $i; echo "</td>"; $i++; //同理,每一行結(jié)束是不是應(yīng)該有一個(gè)</tr>結(jié)束標(biāo)簽?zāi)兀? if($i%10==0){ echo "</tr>"; } } echo "</table>"; ?> </body> </html>注: テーブル部分については、HTML コースの関連部分のみを參照してください
注: ステートメントでは、一重引用符は二重引用符で囲み、二重引用符は一重引用符で囲む必要があります
3. do...while ループ
構(gòu)文: do
実行されるコード;
}while (條件);コードを少なくとも 1 回実行し、條件を確認(rèn)します。條件が true である限り、ループが繰り返されます
l do...while と while の違いは、値が異なるタイミングでチェックされることです。
ただし、前の while ループはブール判定領(lǐng)域をチェックし、それが true の場(chǎng)合に実行します。成立しない場(chǎng)合は実行されません。
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
上記のコードでは、$i は確実に 0 以下であり、これも実行されます。
もちろん、まだ理解していない場(chǎng)合は、アプリケーションのシナリオがまったく思い浮かばなくても、このブロックを完全にスキップしても問(wèn)題ありません。
do...while はほとんど使用されません。ファイルを開(kāi)くなどのリソース処理に使用する場(chǎng)合があります。 4. for ループ制御ステートメント
for ループは、スクリプトを?qū)g行する必要がある回?cái)?shù)が事前にわかっている場(chǎng)合に使用されます
構(gòu)文:
for (初期値; 條件; 増分)
{
}
- パラメータ:
- ?? 初期値: 主にカウンタの設(shè)定に使用される変數(shù)値を初期化します (ただし、ループの先頭で 1 回実行される任意のコードを使用できます)。 ??
條件: ループ実行の制限。 TRUE の場(chǎng)合、ループが継続します。 FALSE の場(chǎng)合、ループは終了します。
インクリメント: 主にカウンターをインクリメントするために使用されます (ただし、ループの最後に実行される任意のコードを使用できます)。
注: 上記の初期値と増分パラメーターは空にすることも、複數(shù)の式 (カンマで區(qū)切る) を指定することもできます。
例: for ループを使用して 1-100 を出力します。ソースコードは次のとおりです
<?php for($i=1;$i<=50;$i++){ echo $i." "; } ?>
例: for ループを使用して 9*9 の乗算表を入力します
<?php //99乘法口訣表從1開(kāi)始,所以聲明一個(gè)變量$i = 1,讓$i小于10,也就是最大值為9 for($i=1;$i<=9;$i++){ //1x1=1,2x2等于4,所以第二次循環(huán)的最大值為$i的值,因此$j=1, $j在循環(huán)自加的過(guò)程當(dāng)中,只能夠小于等于$i for($j=1;$j<=$i;$j++){ echo $i."x".$j."=".$i*$j.' '; } //每行結(jié)束輸出一個(gè)換行 echo "<br/>"; } ?>
注: コードは水平方向に出力され、改行文字は各內(nèi)部 for ループの終了後に 1 回実行されます。
出てくるいくつかの類似點(diǎn)と相違點(diǎn)を追加しましょう
ステートメント | 関數(shù) |
exit | 出口については以前話しました。 current |
break | で後続の実行を停止します。前に遭遇した場(chǎng)合、ループから飛び出すか、構(gòu)造から飛び出て後続のコードを?qū)g行します |
Continue | このループから飛び出す次のループを続行します |
例を見(jiàn)てみましょう。 ソースコードは次のとおりです:
<?php for ($i = 1; $i <= 10; $i++) { if($i == 4){ //待會(huì)兒換成contiune試試 break; } echo '學(xué)習(xí)PHP的第'.$i.'天,加油<br />'; } ?>
Break を continue に置き換えて、結(jié)果を確認(rèn)してみます: (行 4 が失われ、その他行は通常通り出力されます)
5. foreach ループ (ここではまだ配列が紹介されていません。配列の概要を読んでからこの章を?qū)W習(xí)できます)
foreach ループは配列を走査するために使用されます
構(gòu)文は:
foreach ($array as $value)
{
コードを?qū)g行するには、
}
ループするたびに、現(xiàn)在の配列要素の値が $value 変數(shù)に割り當(dāng)てられます (配列ポインターは移動(dòng)します) 1 つずつ)、次回ループすると、配列內(nèi)の次の値が表示されます
例: ソース コードは次のとおりです
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> <body> <?php $x=array(1,2,3,4); foreach ($x as $value) { echo $value . "<br>"; } ?> </body> </html>