一、PHP循環
當我們寫程式碼時,經常需要讓相同的程式碼區塊一次又一次地重複運行。這時候我們就可以在程式碼中使用循環語句來完成這個任務。
在PHP 中,提供了下列迴圈語句:
while - 只要指定的條件成立,則迴圈執行程式碼區塊
do...while - 首先執行一次程式碼區塊,然後在指定的條件成立時重複這個迴圈
for - 迴圈執行程式碼區塊指定的次數
foreach - 根據陣列中每個元素來循環程式碼區塊
#二、while迴圈
while 迴圈會重複執行程式碼區塊,直到指定的條件不成立
語法:
while (條件)
{
要執行的程式碼;
}
我們來透過一個程式碼邏輯圖,認識while迴圈
先判斷條件是否滿足,滿足的話,一直執行大括號裡面的程式碼,直到條件不滿足時,跳出
實例1迴圈輸出1到50內的整數 :原始碼如下
<?php $i=1; while($i<=50){ echo $i." "; $i++; } ?>
實例2:輸出一個1到100的表格,實作隔行變色功能
首先輸出整個表格:原始碼如下
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php //定义循环的初始值 $i=0; //输出表格 echo '<table width="800" border="1" >';//双引号外面要套单引号,双引号会报错 while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行的开始都能够被10求余后为零,如为10的时候,应该显示行开始的标签 if($i%10==0){ //为了隔行变色,第2,4,6每行的颜色变过色的,因此我们又可以再进行一次取余运算 if($i%20==0){ //第1,3,5等行正常输出 echo "<tr>"; }else{ //第2,4,6等行正常输出 echo '<tr bgcolor="pink">';//双引号外面要套单引号,双引号会报错 } } echo "<td>"; echo $i; echo "</td>"; $i++; //同理,每一行结束是不是应该有一个</tr>结束标签呢? if($i%10==0){ echo "</tr>"; } } echo "</table>"; ?> </body> </html>
註:表格部分只是請參考HTML課程的相關部分
註:語句裡面,雙引號裡面要套單引號,單引號裡面套雙引號
三、do...while循環
#語法:do
{
要執行的程式碼;
}
while (條件);
l do...while 語句會至少執行一次程式碼,然後檢查條件,只要條件成立,就會重複進行迴圈
l do ...while與while的區別是,它們的值的檢查時機不同。
l do-while 不論while判斷是否成立,先執行一次程式碼區塊循環語句,保證會執行一次(表達式的真值在每次迴圈結束後檢查)。
然而我們之前的while迴圈會檢查布林判斷區域,成立則執行。不成立則不執行。
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
上面程式碼中,$i 肯定不大於0,也執行了。
當然,你還不能理解,實在想不到應用程式場景也沒關係,可以完全跳過此區塊。
do...while用的情況比較少。我們有可能用在資源處理如:文件開啟等地方。
四、for 迴圈控制語句
#for 迴圈用於預先知道腳本需要執行的次數的情況
語法:
for (初始值; 條件; 增量)
{
要執行的程式碼;
}
參數:
初始值:主要是初始化一個變數值,用來設定一個計數器(但可以是任何在循環的開始被執行一次的程式碼)。
條件:循環執行的限制條件。如果為 TRUE,則循環繼續。如果為 FALSE,則循環結束。
增量:主要用於遞增計數器(但可以是任何在迴圈的結束被執行的程式碼)。
註:上面的初始值和增量參數可為空,或有多個表達式(以逗號分隔)
#實例:用for迴圈來輸出1-100。原始碼如下
<?php for($i=1;$i<=50;$i++){ echo $i." "; } ?>
實例:用for迴圈來打一下9*9的乘法口訣表吧
<?php //99乘法口诀表从1开始,所以声明一个变量$i = 1,让$i小于10,也就是最大值为9 for($i=1;$i<=9;$i++){ //1x1=1,2x2等于4,所以第二次循环的最大值为$i的值,因此$j=1, $j在循环自加的过程当中,只能够小于等于$i for($j=1;$j<=$i;$j++){ echo $i."x".$j."=".$i*$j.' '; } //每行结束输出一个换行 echo "<br/>"; } ?>
#註:在程式碼中是橫著輸出的,換行符在每一個內部的for迴圈結束後執行一次
我們來補充幾個跳出的異同吧
語句 | 作用 |
##exit | exit之前我們講過了,從目前處停止後續執行 |
break | #之前曾經遇到過,跳出迴圈或跳出結構體執行後續程式碼 |
#continue | 跳出此次循環,下次循環繼續 |
<?php for ($i = 1; $i <= 10; $i++) { if($i == 4){ //待会儿换成contiune试试 break; } echo '学习PHP的第'.$i.'天,加油<br />'; } ?>將break換成continue,查看結果試試:(第4行遺失,其他行正常輸出)
#五、foreach迴圈(此處陣列還沒介紹,可以看完陣列的介紹之後再學習本章)
foreach 迴圈用於遍歷陣列語法為:foreach ($array as $value){
要執行程式碼;
}
<!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>下一節