整理 PHP 初學核心觀念,涵蓋變量命名、表單處理、檔案上傳、Session 控制、檔案包含、JavaScript 嵌入與引號差異等實戰必備知識點。
$_GET、$_POST、$_SESSION、$_SERVER 等。camelCase 或 snake_case,保持專案一致性。<!-- 指定提交方式 -->
<form method="POST" action="handle.php">
<input type="text" name="username">
<input type="submit" value="送出">
</form>
<!-- 檔案上傳必加 enctype -->
<form method="POST" action="upload.php" enctype="multipart/form-data">
<input type="file" name="avatar">
<input type="submit" value="上傳">
</form>
method 屬性決定資料傳輸方式(GET 顯示於 URL,POST 隱藏於請求體);檔案上傳必須設定 enctype="multipart/form-data",否則 $_FILES 為空。
<?php
session_start();
// 刪除特定會話變量
unset($_SESSION['user']);
unset($_SESSION['pwd']);
// 或一次清空所有會話資料
// $_SESSION = array();
// 徹底銷毀 Session
session_destroy();
// 重導向防止表單重複提交
header("Location: index.php");
exit;
?>
注意:session_destroy() 僅刪除伺服器端 Session 檔案,不會自動清除 $_SESSION 陣列與客戶端 Cookie,建議搭配 $_SESSION = [] 與 setcookie(session_name(), '', time()-3600) 完整登出。
<?php
// 遍歷 $_POST 多值欄位(如 checkbox 群組)
foreach ($_POST['colors'] as $color) {
echo "選擇顏色:$color <br>";
}
// 檔案包含
include 'config.php'; // 找不到只警告,繼續執行
require 'db.php'; // 找不到報錯並中止
include_once 'header.php'; // 避免重複包含
?>
<!-- 內嵌腳本 -->
<script>
function greet() { alert('Hello!'); }
</script>
<!-- 外部引用 -->
<script src="https://cdn.example.com/app.js"></script>
現代開發建議:移除過時的 language="javascript" 屬性,HTML5 預設即為 JavaScript;外部引用優先使用 CDN 並加上 defer 或 async 優化載入效能。
<noscript>
<p style="color:red">請啟用 JavaScript 以獲得完整功能體驗。</p>
</noscript>
<noscript> 內容僅在瀏覽器禁用 JS 時顯示,是優雅降級的標準做法。
| 特性 | 單引號 '...' | 雙引號 "..." |
|---|---|---|
| 變量解析 | 否(視為字面字串) | 是(自動插值變量) |
| 逸出字元 | 僅 \'、\\ | 支援 \n、\t、\" 等完整逸出序列 |
| 效能 | 略快(無解析開銷) | 略慢(需掃描變量) |
<?php
$lang = 'PHP';
echo 'I love $lang'; // 輸出:I love $lang
echo "I love $lang"; // 輸出:I love PHP
?>
實務建議:純靜態字串用單引號,需插值變量或逸出字元才用雙引號,兼顧可讀性與微幅效能優化。
掌握以上基礎,即可應付 PHP 入門階段 80% 的常見開發場景。進階建議深入學習 PDO 資料庫操作、Composer 套件管理、PSR 規範與現代框架(Laravel/Symfony)。