網頁設計 EP05-PHP 迴圈與邏輯判斷運算子(上)

更新 發佈閱讀 11 分鐘

上一篇提到了變數範圍以及超全域變數的使用方法後,接下來邏輯判斷、迴圈與運算子分為上篇與下篇,往邏輯判斷與運算子繼續邁進✨。

網頁設計 EP04-PHP變數範圍

迴圈

for迴圈

常用於遍歷(Traversal)陣列、物件或者是重複執行流程一樣的事情,就可以使用 for 迴圈,使用方式需設定迴圈開始值、結束條件並搭配計次方式,適合用於確定執行次數時使用。

宣告方式:

for(設定變數初始值;條件式;變數計次方式){
statement;
}


<?php
$shelf = ["Coke", "Tea", "Water", "Milk", "Juice"];
for($i=0;$i<count($shelf);$i++){
    echo $shelf[$i];
}
?>
/*輸出
Coke
Tea
Water
Milk
Juice
*/

foreach

foreach 是PHP中專門用來遍歷陣列或物件的語法。

可搭配索引陣列(value1, value2) ,每次循環的時候會把陣列的值指派給$value 。

也可以搭配關聯陣列(key => value) ,每次循環的時候會把陣列的值指派給$value,還會把鍵指派給$key。

宣告方式:

foreach ( 陣列 as $value ){ 
statement;
}
--------------------------------
foreach ( 陣列 as $key => $value ){  
statement;
}


<?php
$cart = [120, 50, 30 ];
foreach($cart as $item => $price){
    echo $item." item prices is ".$price;
}
/*輸出
0 item prices is 120
1 item prices is 50
2 item prices is 30​
*/
--------------------------------------
<?php
$cart = ['Burger' => 120, 'Fries' => 50, 'Cola' => 30 ];
foreach($cart as $item => $price){
    echo $item." prices is ".$price;
}
/*輸出
Burger prices is 120
Fries prices is 50
Cola prices is 30​
*/

while

for 迴圈類似同樣用於重複執行流程一樣的事情,使用方式需先設定條件當條件符合(為True)執行一次迴圈內的程式碼之後,再判斷一次條件,直到條件不符合(為False),適合用於不確定執行次數時使用。

宣告方式:

while(condition){
statement;
}

 

<?php
$i = 0;
while ($i < 10) {
echo "數字: $i";
$i++;
}
?>
/*
數字: 0
數字: 1
數字: 2
數字: 3
數字: 4
數字: 5
數字: 6
數字: 7
數字: 8
數字: 9
*/

do/while 

while 相反,先執行迴圈內程式碼,再判斷條件是否符合,符合再執行迴圈內程式碼,直到條件不成立。

宣告方式:

do{
statement;
}while(condition);


<?php
$i = 0;
do{
   echo "數字: $i";//輸出0
   $i++;
   echo "數字: $i";//輸出1
}while($i>10);
?>

邏輯判斷

switch case vs match

switch

switch 語句用於根據不同的條件執行不同程式碼,與 if...elseif...else 結構相同,當有多個條件需要檢查同一個變數時,在這時候 switch 就非常好用比 if...elseif...else 更簡潔易讀。

宣告方式:

switch($expression){
case value1:
statement1;
break;
case value2:
statement2;
break;
case value3:
statement3;
break;
default:
statement4;
break;
};

switch case 裡,程式碼會由上往下執行,如果case的值與條件的值相同,則執行相對應動作,執行完畢遇到 break 跳出switch判斷式(沒有在case區塊後加上 break 會導致後續case區塊被執行(fall through)),如果case的值都與條件不符,可以在最後設定default,執行最終動作。

<?php
$grade = "A";
switch($grade){
    case "A":
        echo "Excellent";
break;
    case "B":
        echo "Good";
break;
    case "C":
        echo "not bad";
break;
    case "D":
        echo "bad";
break;
    default:
    echo "very bad";
break;
};//輸出Excellent
?>

match表達式

switch case 的加強版,比較一個值與多個條件,符合條件時回傳值,可用於結果賦值給變數或是直接輸出。

宣告方式:

match($expression){
condition1 => returnvalue1,
condition2 => returnvalue2,
condition3 => returnvalue3,
default => returnvalue4
};

相較於 switch case 的鬆散比較(==),match 則是採用嚴格比較(===),由於每個條件直接對應結果不需要 break 避免fall through。

在沒有 default 的情況下需要窮舉所有可能,否則會出現 Uncaught UnhandledMatchError

<?php
$level = 'A';
$result = match ($level) {
    'A' => "優秀",
    'B' => "良好",
    'C' => "待加強",
    default => "未知",
};
echo $result;

if...else

依上往下執行,條件成立執行該程式碼區塊,反之繼續往下執行下一段程式碼。

if(condition){
statement1;
}

elseif(condition){
statement2;
}

else{
statement3;
}

假設想要在商城兌換禮品,目前商城只有兩個商品,10點換咖啡、20點換蛋糕,如果不夠的話兌換失敗,下次再來,可以透過下方的流程圖,更清楚地觀察點數兌換的判斷過程:

圖一 點數兌換判斷流程

圖一 點數兌換判斷流程

<?php
$points = 10;

if($points >= 20){
    echo "蛋糕兌換成功!";
}
elseif($points >= 10){
    echo "咖啡兌換成功!";
}
else{
    echo "積分不足";
}
?>

if 也可以單獨出現,或者是 if else 搭配。

跳出迴圈指令

break

如同 switch 所演示,跳出程式區塊。

<?php
for($i=0;$i<10;$i++){
   if($i==5){
    echo "I dont want this!";
    break;
   }
   else{
    echo "I love it!";
   }
}
?>/*輸出I love it! I love it! I love it! I love it!
I love it! I dont want this!
*/

continue

break 不同的是跳出當前迴圈,從下一個迴圈開始執行。

<?php
for($i=0;$i<3;$i++){
   if($i==2){
    continue;
    echo "I dont want this!";
   }
   else{
    echo "I love it!";
   }
}
?>//輸出I love it! I love it!

goto

用來執行程式跳轉任務,跳轉到某一個位置執行程式碼,不過 goto 也不是隨隨便便都可以執行還是有一些限制,目標的位置需要在同個作用域和檔案,也就是無法跳出function或 class,也無法從外部跳入迴圈、function 和 switch case。

建議謹慎使用該語法,會讓程式碼難以閱讀以及流程難以追蹤、維護。

<?php
$hasTicket = false; //假設這個人沒票
if (!$hasTicket) {
goto error; //發現沒票,直接跳到 error 標籤
}

// 這裡是被跳過的內容
echo "歡迎光臨!這是你的號碼牌。";
echo "請往裡面走...";

// 定義標籤
error:
echo "抱歉,您沒有門票,不能進入!\n";
?>

本篇文章到這裡就結束了,先進廣告,不要走開馬上回來。

如果喜歡我的文章或覺得有用的話,歡迎動動手指點擊愛心,你/妳的支持是我最大的動力,我們下篇文章見🙌。

留言
avatar-img
逃的沙龍
3會員
13內容數
分享學習路上的內容與心得
逃的沙龍的其他內容
2026/02/17
探討 PHP 變數範圍,包括全域變數、區域變數、靜態變數,並詳細介紹 $_GLOBALS, $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE, $_SESSION 等超全域變數的用法與應用。
Thumbnail
2026/02/17
探討 PHP 變數範圍,包括全域變數、區域變數、靜態變數,並詳細介紹 $_GLOBALS, $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE, $_SESSION 等超全域變數的用法與應用。
Thumbnail
2026/02/13
本篇文章將帶你快速瞭解 PHP 的基本語法,包含標籤、分號、列印 (echo)、註解、變數宣告、命名規則、常見資料型別 (字串、整數、浮點數、布林值、null) 以及型別轉換 (casting) 的應用。適合剛接觸 PHP 的初學者,為後續的程式撰寫奠定基礎。
Thumbnail
2026/02/13
本篇文章將帶你快速瞭解 PHP 的基本語法,包含標籤、分號、列印 (echo)、註解、變數宣告、命名規則、常見資料型別 (字串、整數、浮點數、布林值、null) 以及型別轉換 (casting) 的應用。適合剛接觸 PHP 的初學者,為後續的程式撰寫奠定基礎。
Thumbnail
2026/02/11
本篇文章將教學如何將 Visual Studio Code (VS Code) 與 XAMPP 伺服器環境結合,設定 VS Code 以便能順暢執行 PHP 程式。內容涵蓋 VS Code 插件安裝、連接埠 (Port) 設定、DocumentRoot 設定,以及實際執行你的第一個 PHP 程式。
Thumbnail
2026/02/11
本篇文章將教學如何將 Visual Studio Code (VS Code) 與 XAMPP 伺服器環境結合,設定 VS Code 以便能順暢執行 PHP 程式。內容涵蓋 VS Code 插件安裝、連接埠 (Port) 設定、DocumentRoot 設定,以及實際執行你的第一個 PHP 程式。
Thumbnail
看更多
你可能也想看
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
Q:什麼是Frontpage網頁設計軟體? Microsoft FrontPage曾是微軟公司推出的一款網頁設計與管理工具,目前已不再生產。它一度作為入門級網頁設計者的首選,而微軟隨後推出了Expression Web和Microsoft SharePoint Designer來取代...
Thumbnail
Q:什麼是Frontpage網頁設計軟體? Microsoft FrontPage曾是微軟公司推出的一款網頁設計與管理工具,目前已不再生產。它一度作為入門級網頁設計者的首選,而微軟隨後推出了Expression Web和Microsoft SharePoint Designer來取代...
Thumbnail
想要自學 HTML 嗎?HTML 是一個相對簡單的標記語言,適合初學者。透過免費資源和互動平臺,你可以輕鬆地學習 HTML,並逐步提高技能。除了 HTML,你還可以瞭解免費網頁設計軟體,如 VS Code 和 Sublime Text。加油吧!
Thumbnail
想要自學 HTML 嗎?HTML 是一個相對簡單的標記語言,適合初學者。透過免費資源和互動平臺,你可以輕鬆地學習 HTML,並逐步提高技能。除了 HTML,你還可以瞭解免費網頁設計軟體,如 VS Code 和 Sublime Text。加油吧!
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
在CSS Battle的第153題,我們會使用grid、css選擇器、偽元素等技巧來解決西洋棋盤的排版問題。這篇文章分享了完整的解法,包括選擇器使用、偽元素的應用以及其他排版技巧,並激勵讀者分享自己的解法。
Thumbnail
在CSS Battle的第153題,我們會使用grid、css選擇器、偽元素等技巧來解決西洋棋盤的排版問題。這篇文章分享了完整的解法,包括選擇器使用、偽元素的應用以及其他排版技巧,並激勵讀者分享自己的解法。
Thumbnail
本篇文章探討了2024年的網頁製作工具和程式語言,以及如何透過這些工具來建立各種功能豐富的網頁。文章還介紹了IDE、Python和Chrome的安裝步驟,為讀者準備軟體。下一篇的主題將是介紹VS code的介面,讓讀者學會如何去操作並寫程式。
Thumbnail
本篇文章探討了2024年的網頁製作工具和程式語言,以及如何透過這些工具來建立各種功能豐富的網頁。文章還介紹了IDE、Python和Chrome的安裝步驟,為讀者準備軟體。下一篇的主題將是介紹VS code的介面,讓讀者學會如何去操作並寫程式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News