在php中,break用來跳出目前的語法結構,執行下面的語句;可以在switch、for、while和do while等語句中使用,可以終止迴圈體的程式碼並立即跳出目前的循環,執行循環之後的程式碼。 break語句可以帶一個參數n,表示跳出循環的層數,如果要跳出多重循環的話,可以用n來表示跳出的層數,如果不帶參數預設是跳出本重循環。
本教學操作環境:windows7系統、PHP8版、DELL G3電腦
PHP中的循環結構大致有for循環,while循環,do{} while 循環以及foreach循環幾種,不管哪種循環中,在PHP中跳出循環大致有這麼多種方式:
<?php $i = 1; while (true) { // 这里看上去这个循环会一直执行 if ($i==2){// 2跳过不显示 $i++; continue; } else if($i==5) {// 但到这里$i=5就跳出循循环了 break; } else{ echo $i . '<br>'; } $i++; } exit; echo'这里不输出'; ?>
結果:
1 3 4
break關鍵字
break 關鍵字可以讓程式跳出目前的迴圈,可以在 switch、for、while 和do while 等語句中使用,這樣可以終止迴圈體的程式碼並立即跳出目前的循環,執行循環之後的程式碼。
break的作用是跳出目前的語法結構,執行下面的語句。 break語句可以帶一個參數n,表示跳出循環的層數,如果要跳出多重循環的話,可以用n來表示跳出的層數,如果不帶參數預設是跳出本重循環。
break 關鍵字的執行流程如下圖所示:
【範例】
<?php for ($i=0; $i < 10; $i++) { if($i == 3) { break; } echo $i; } ?>
在for 迴圈中,判斷目前$ i 的值為3 時便終止循環。程式碼的執行結果為:
012
在 while、do while 和 foreach 迴圈語句中效果一樣,break 語句的作用都是終止迴圈。
說明:
break 語句不僅可以跳出目前的循環,還可以指定跳出幾層循環。語法格式為:
break n;
其中,參數n 指定要跳出的循環層數
範例:
<?php while (true) { for (;;) { for ($i=0; $i < 10; $i++) { echo '$i = '.$i.', <br>'; if($i == 3) { echo '变量 $i 等于 3,跳出第一层循环。<br>'; break 1; } } for ($j=0; $j < 10; $j++) { echo '$j = '.$j.', <br>'; if($j == 4) { echo '变量 $j 等于 4,跳出最外层循环。'; break 3; } } } echo '由于前面直接跳出了最外层循环,所以这里的打印信息是看不到的!'; } ?>
執行結果如下:
$i = 0, $i = 1, $i = 2, $i = 3, 变量 $i 等于 3,跳出第一层循环。 $j = 0, $j = 1, $j = 2, $j = 3, $j = 4,
變數$j 等於4,跳出最外層迴圈。
continue關鍵字
continue是用來用在迴圈結構中,控製程式放棄本次迴圈continue語句之後的程式碼並轉而進行下一次循環。 continue本身並不會跳出循環結構,只是放棄這次循環。如果在非循環結構中(例如if語句中,switch語句中)使用continue,程式將會出錯。
例如在下面的這段PHP程式碼片段:
<?php for($i = 1;$i <= 100; $i++ ){ if($i % 3 == 0 || $i % 7 == 0){ continue; } & #160; else{ echo”$i \n<br/>”; } } ?>
PHP的程式碼片段的作用是輸出100以內,既不能被7整除又不能被3整除的那些自然數,循環中先用if條件語句判斷那些能被整除的數,然後執行continue;語句,就直接進入了下個迴圈。不會執行下面的輸出語句了。
goto關鍵字
goto其實只是一個運算符,和其他語言一樣,PHP也不鼓勵濫用goto,濫用goto會導致程式的可讀性嚴重下降。 goto的作用是將程式的執行從目前位置跳到其他任意位置,goto本身並沒有要結束的循環的作用,但其跳轉位置的作用使得其可以作為跳出循環使用。但PHP5.3以上版本停止了對goto的支持,所以應該盡量避免使用goto。
下面的是一個使用了goto跳出循環的例子
for($i = 1000;$i >= 1 ; $i– ){ if( sqrt($i) <= 29){ goto a; } echo “$i”; } a: echo” this is the end”;
例子中使用了goto來跳出循環,這個例子用來檢測1000以內,那些數的平方根大於29 。
exit關鍵字
exit是用來結束程式執行的。可以用在任何地方,本身沒有跳出循環的含義。 exit可以帶一個參數,如果參數是字串,PHP將會直接把字串輸出,如果參數是integer整形(範圍是0-254),那個參數將會被當作結束狀態使用。
<?php for($i = 1000;$i >= 1 ; $i– ){ if( sqrt($i) >= 29){ echo”$i \n<br/>”; } else{ exit; } } echo”本行将不会被输出”; ?>
上面這個例子中直接在從循環裡結束了程式碼的運行,這樣會導致後面的程式碼都不會被執行,如果是在一個php web頁裡面,甚至連exit後面的html程式碼都不會被輸出。
return關鍵字
return語句是用來結束一段程式碼,並且傳回一個參數的。可以從一個函數裡調用,也可以從一個include()或require()語句包含的檔案裡來調用,也可以是在主程式裡調用,如果是在函數裡調用程式將會馬上結束運行並返回參數,如果是include()或require()語句包含的文件中被調用,程序執行將會馬上返回到調用該文件的程序,而返回值將作為include()或者require()的返回值。而如果是在主程式中調用,那麼主程式將會馬上停止執行
<?php for($i = 1000;$i >= 1 ; $i– ){ if( sqrt($i) >= 29){ echo”$i \n<br/>”; } else{ return; } } echo”本行将不会被输出”; ?>
这里的例子和上面使用exit的效果是一样的。
在循环结束条件,自然跳出
这个当然是最好理解了,当循环满足循环临界条件时就是自己退出。
以上是PHP中跳出循环的几种方式的简单总结。
if不是循环结构,所以不能使用break,continue退出。如果你非要在if语句中这样用的话,可以把这个if语句放在一个循环结构中
$i=0; $s=1; while($i==0) { if($s==1) { $v=8; break; } $v=9; } echo $v;
推荐学习:《PHP视频教程》
以上是php裡面break的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!