PHP 代碼嵌入 HTML 的方式、空白處理規則、註釋風格是入門必修課。本文系統梳理基礎語法規範,助力新手建立良好編碼習慣。
| 風格 | 語法 | 推薦度 | 說明 |
|---|---|---|---|
| XML 標準 | <?php ... ?> | ⭐⭐⭐⭐⭐ | 官方推薦,兼容性最好,XML/HTML 混編安全 |
| 短標記 | <? ... ?> | ⭐⭐ | 需 `short_open_tag=On`,XML 衝突,不推薦 |
| Script 標記 | <script language="php">...</script> | ⭐ | 歷史遺留,極少使用 |
| Echo 短標記 | <= $var ?> | ⭐⭐⭐⭐ | 模板中輸出變量專用,PHP 5.4+ 永久啟用 |
<!-- 僅 PHP 文件,無 HTML 輸出時,省略閉合標記防止輸出空白 -->
<?php
declare(strict_types=1);
namespace App;
class User {
// ...
}
// 無 ?>
<!-- 模板文件中輸出 -->
<h1><?= htmlspecialchars($title) ?></h1>
<p><?= $content ?></p>
| 類型 | 語法 | 適用場景 | 示例 |
|---|---|---|---|
| 單行 (C++) | // 註釋內容 | 行內說明、臨時禁用代碼 | $x = 1; // 初始化 |
| 多行 (C) | /* 註釋 | 文件頭、函數文檔、大段禁用 | 見下方 DocBlock |
| Shell 風格 | # 註釋 | 配置文件、腳本首行 | # 配置項 |
| DocBlock | /** 文檔註釋 */ | 類/函數/屬性/常量文檔,IDE 智能提示、自動生成文檔 | 見下方 |
<?php
/**
* 用戶服務類
*
* 處理用戶註冊、認證、資料管理等核心業務
*
* @package App\Services
* @author Zhang San <zhangsan@example.com>
* @since 2024-01-15
* @version 1.2.0
*/
class UserService {
/**
* 註冊新用戶
*
* @param string $email 郵箱地址(唯一)
* @param string $password 明文密碼(將自動哈希)
* @param array $profile 額外資料 [nickname, avatar, ...]
* @return int 新用戶 ID
* @throws ValidationException 參數驗證失敗
* @throws DuplicateEntryException 郵箱已存在
*/
public function register(string $email, string $password, array $profile = []): int {
// 實現...
}
}
?>
<?php
// 1. 縮進:4 個空格,禁用 Tab
// 2. 行長:軟限制 80,硬限制 120
// 3. 命名空間聲明後空一行
// 4. use 聲明組後空一行
// 5. 類/方法/函數左大括號換行,右大括號獨佔行
// 6. 控制結構關鍵字後一空格,左括號無空格
if ($condition) {
// ...
} elseif ($other) {
// ...
} else {
// ...
}
// 7. 方法參數:逗號後一空格,默認值緊貼等號
public function foo(string $bar, int $baz = 0): void {}
// 8. 陣列:短語法,尾隨逗號
$arr = [
'key' => 'value',
'long_key' => 'long_value',
];
// 9. 空行分隔邏輯塊
$users = getUsers();
$activeUsers = array_filter($users, fn($u) => $u->isActive());
foreach ($activeUsers as $user) {
process($user);
}
?>
遵循統一語法風格,能減少低級錯誤,提升團隊協作效率,也是代碼專業度的體現。