選修單元 B EBCH2:PHP 基礎

本章介紹 PHP 的核心語法:由伺服器端執行流程、輸出語句(echo / print)、字串與跳脫字符, 到運算符、條件判斷、陣列及循環。 你將學習如何用 PHP 動態產生 HTML,並以循環把資料輸出成清單或表格。

1PHP 是甚麼

重點

  • PHP 是常用的伺服器端手稿程式語言,可用於產生動態網頁、處理表單及存取數據庫。
  • 基本流程:伺服器端執行 → 產生 HTML → 回傳瀏覽器;瀏覽器不會直接執行 PHP 代碼。
  • 瀏覽器收到的是「執行後的結果」(通常是 HTML),一般看不到原本的 PHP 代碼。
  • 因此,若只用檔案總管直接開啟 .php 檔,PHP 不會被執行,頁面亦不會得到預期輸出。

用途與學習原因:為何需要伺服器端程式

若只使用超文本標示語言(HTML)及 CSS,頁面內容大多是固定的:不同用戶看到的內容差異不大。PHP 的價值在於「按情況產生內容」:例如根據數據庫讀取資料列出名單、根據用戶輸入顯示搜尋結果、根據登入狀態顯示不同功能等。

當你在瀏覽器輸入網址,實際上是向伺服器提出請求;伺服器收到請求後,會先執行 PHP,然後把輸出的 HTML 回傳。這表示:PHP 的執行環境不在瀏覽器,而在伺服器,因此更適合處理敏感資料與系統規則。

學習時,你可把 PHP 視為「會輸出 HTML 的程式」。只要掌握輸出、條件與循環,你已能產生大量結構化內容(例如清單、表格),為之後處理表單及數據庫建立基礎。

即時示範(模擬器)

示範:PHP 先執行,再回傳 HTML

請嘗試修改 echo 的內容,觀察輸出結果的變化。

Check Point 1:PHP 與伺服器端執行流程(≥40 題)

以概念理解題為主:伺服器端、輸出結果是甚麼、為何不能直接開啟 php 檔等。

2輸出語句與跳脫字符

重點

  • PHP 語句一般以分號 ; 結束;代碼一般寫在 <?php?> 之間。
  • echoprint 都可輸出內容:入門階段可先以 echo 為主。
  • 字串可用單引號或雙引號:雙引號支援變量內插及常用跳脫序列。
  • 跳脫字符(反斜線 \)用於輸出特殊符號,例如 \n\"\\;常見錯誤是引號不配對或忘記跳脫。

字串與跳脫字符:寫對引號,才會輸出對內容

echoprint 的核心工作,是把內容輸出到回應之中。由於瀏覽器會把回應內容當作 HTML 解讀,所以最常見的做法是讓 PHP 輸出 HTML 片段,例如段落、清單或表格。

字串與跳脫字符是初學者最容易出錯的位置。你可先記住:若字串用雙引號包起來,字串內要輸出雙引號時,必須寫成 \";要輸出反斜線,必須寫成 \\。這些規則確保程式能分清楚「語法」與「字串內容」。

即時示範(模擬器)

示範:跳脫字符(\"、\\)

Check Point 2:輸出預測與跳脫字符(≥40 題)

以輸出預測題、跳脫字符辨識題為主。

3運算符與字串連接

重點

  • 常用算術運算符:+ - * / %
  • 遞增/遞減:++--;組合指定運算符:+=-=.= 等。
  • 字串連接運算符是 ..= 會把串接結果寫回原本變量(重點)。
  • 做輸出題時,建議先做「空運行」:逐行追蹤變量如何被更新,再判斷最後輸出。

運算優先次序與括號:令輸出更清晰

運算符是程式的「基本積木」。你可先以「讀取 → 計算 → 輸出」的思路學習:把資料存到變量,再用運算式計算,最後用輸出語句把結果呈現。當你把運算式放入輸出語句時,建議加上括號,令運算次序一目了然。

字串連接與輸出是網頁程式常見操作。只要記住:PHP 的字串連接用 .;要逐段組合一句句子,可用 .= 把片段接到變量後面。

即時示範(模擬器)

示範:計算 + 串接(含括號)

代碼小練習:交換兩個變量

請在下面練習中以 PHP 完成交換,並用「核對答案」檢查輸出是否正確。

小練習:交換 $a 與 $b

Check Point 3:空運行(運算符與字串連接)(≥40 題)

每題提供 3–5 行 PHP 程式碼;請判斷最終輸出(包括輸出的 HTML 內容)。

4條件判斷:if / else if / else

重點

  • if 用於分支判斷;多重分支可用 else if;最後可用 else 作預設情況。
  • 常用比較運算符:== != > < >= <=
  • 常用邏輯運算符:&&(AND)、||(OR)、!(NOT)。
  • 寫條件時建議加括號,令判斷更清晰,例如:if (($a >= 10) && ($a <= 20))

比較運算符與邏輯運算符:寫出可讀的條件

if 語句的核心是「條件」。條件通常由比較運算符組成,例如「分數是否大於或等於 50」。當你需要同時檢查多個條件時,便要使用邏輯運算符把多個條件連接起來,例如「年齡達標,而且已持票」。

實務上,條件判斷常用於控制輸出內容:同一段 HTML 結構之中,某些內容只在特定情況下才輸出。這正是 PHP 動態產生網頁的基本技巧。

即時示範(模擬器)

示範:if / else if / else(按分數輸出等第)

你可嘗試修改 $score,觀察等第輸出如何改變。

代碼小練習:自行撰寫 if 語句

以下小練習要求同時使用比較運算符與邏輯運算符。

小練習:年齡 + 持票(AND 條件)

Check Point 4:條件判斷(if / else if / else)(≥40 題)

以流程判斷、輸出預測、填空/除錯題為主。

5陣列:索引與關聯式陣列

重點

  • 索引陣列:以 0,1,2… 作索引,例如 $arr = [10, 20, 30];
  • 關聯式陣列:以字串作鍵(key),例如 $user = ["name"=>"Ada", "age"=>18];
  • 常用操作:讀取、修改、新增($arr[] = ...),以及用 count() 取得元素數量。
  • foreach 最適合遍歷陣列:可逐個取得元素;關聯式陣列亦可同時取得鍵與值。

建立、讀取、修改與新增:把多筆資料放入同一個變量

陣列可用來儲存多筆資料。當資料量增加時,逐個變量處理會變得困難;使用陣列配合循環,可用同一套邏輯處理多筆資料,例如把成績清單輸出為 <ul>,或把資料輸出為 <table>

索引陣列適合存放「順序性」資料;關聯式陣列適合存放「欄位名稱—欄位內容」形式的資料(例如 name、class)。實務上常會把關聯式陣列視為一筆記錄,再把多筆記錄放入更大的陣列中。

代碼小練習:count() 與 foreach

小練習:輸出陣列長度並遍歷元素

Check Point 5:陣列(索引與關聯式陣列)(≥40 題)

以索引/關聯 key、foreach 輸出預測題為主。

6循環:for / while / foreach

重點

  • for:適合已知範圍或次數的循環(例如 1 至 10)。
  • while:適合按條件停止的循環(例如直到資料讀完)。
  • foreach:最適合遍歷陣列,不需手動處理索引;可同時取得鍵與值。
  • 循環常與輸出結合,用來重複產生 HTML(例如清單項目 <li>、表格列 <tr>)。

循環與陣列遍歷:把重複工作交給程式

循環讓程式可重複執行一段語句,常用於處理多筆資料及輸出。若資料存放於陣列中,foreach 通常是最直接的遍歷方式;若你需要使用索引(例如輸出序號或按索引讀取/修改),可改用 for 配合 count()

把資料輸出成表格時,可先輸出表格骨架(<table>、表頭),再把「重複的列」交給循環輸出。這樣結構清晰,亦較容易除錯。

即時示範(模擬器)

示範:while 逐列輸出 table

代碼小練習:for/while/陣列遍歷(4 題)

以下以「一行一題」列出。展開題目後會載入模擬器;每題均提供:提示/核對答案/顯示參考答案/講解。

(正在載入練習…)

Check Point 6:循環(for / while / foreach)(≥40 題)

以循環次數、輸出預測、常見錯誤題為主。

✍️頁末代碼題(20 題 Coding)

每題提供:提示/核對答案/顯示參考答案/講解。請在模擬器中完成代碼,然後按「核對答案」檢查。

以下以「一行一題」列出。展開題目後會載入模擬器進行作答;每題均提供:提示/核對答案/顯示參考答案/講解。

(正在載入代碼題…)