搜尋
首頁後端開發php教程php跳出循環的幾種方法介紹及區別實例詳解

php跳出循環的幾種方法介紹及區別實例詳解

Jun 24, 2017 am 09:11 AM
php介紹幾種循環方法跳出

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

continue
continue 是用來用在迴圈結構中,控製程式放棄本次迴圈continue語句之後的程式碼並轉而進行下一次迴圈。 continue本身並不會跳出循環結構,只是放棄這一 次循環。如果在非循環結構中(例如if語句中,switch語句中)使用continue,程式將會出錯。
例如在下面的這段PHP程式碼片段中:

<?php
for($i = 1;$i <= 100; $i++ ){
if($i % 3 == 0 || $i % 7 == 0){
continue;
}
else{
echo "$i \n<br/>";
}
}
?>

PHP的程式碼片段的作用是輸出100以內,既不能被7整除又不能被3整除的那些自然數,循環中先用if條件語句判斷那些能被整除的數,然後執行continue;語句,就直接進入了下個迴圈。不會執行下面的輸出語句了。

break
break是用在上面所提的各種迴圈和switch語句中的。他的作用是跳出目前的語法結構,執行下面的語 句。 break語句可以帶一個參數n,表示跳出循環的層數,如果要跳出多重循環的話,可以用n來表示跳出的層數,如果不帶參數預設是跳出本重循環。
看下面這個多重循環嵌套的例子:

for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo "$m \n<br/>";
if($m < 90 || $m > 190) {
break 2;}}}

這裡使用了break 2跳出了兩重循環,你可以試驗一眼,將2去掉,得到的結果是完全不一樣的。如果不使用參數,跳出的只是本次循環,第一層循環會繼續執行。

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中跳出循環的幾種方式的簡單總結。

以上是php跳出循環的幾種方法介紹及區別實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
高流量網站的PHP性能調整高流量網站的PHP性能調整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依賴注入:初學者的代碼示例PHP中的依賴注入:初學者的代碼示例May 14, 2025 am 12:08 AM

你應該關心DependencyInjection(DI),因為它能讓你的代碼更清晰、更易維護。 1)DI通過解耦類,使其更模塊化,2)提高了測試的便捷性和代碼的靈活性,3)使用DI容器可以管理複雜的依賴關係,但要注意性能影響和循環依賴問題,4)最佳實踐是依賴於抽象接口,實現鬆散耦合。

PHP性能:是否可以優化應用程序?PHP性能:是否可以優化應用程序?May 14, 2025 am 12:04 AM

是的,優化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)優化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,並避免使用

PHP性能優化:最終指南PHP性能優化:最終指南May 14, 2025 am 12:02 AM

theKeyStrategiestosigantificallyBoostPhpaPplicationPerformenCeare:1)UseOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)優化AtabaseInteractionswithPreparedStateTementStatementStatementAndProperIndexing,3)配置

PHP依賴注入容器:快速啟動PHP依賴注入容器:快速啟動May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依賴注入與服務定位器PHP中的依賴注入與服務定位器May 13, 2025 am 12:10 AM

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

PHP性能優化策略。PHP性能優化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP電子郵件驗證:確保正確發送電子郵件PHP電子郵件驗證:確保正確發送電子郵件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)