SitePoint 前面試官 Kevin Yank 曾分享《Good and Bad PHP Code》,揭露招聘過程中令他驚訝的現象:看似基礎的編碼規範,竟讓團隊花費三個月才招到合格者。本文提煉核心要點,助你養成專業級編碼習慣。
<?php短標籤 <? 依賴 short_open_tag 設定,移植性差,且與 XML 聲明衝突。永遠使用 <?php。
<?php
// ❌ 錯誤:直接輸出可能觸發 Notice
echo $_GET['query'];
// ✅ 正確:先判斷
echo isset($_GET['query']) ? htmlspecialchars($_GET['query']) : '';
?>
echo 去除多餘括號<?php
// ❌ 語法雖合法但非必要
echo ("Hello");
// ✅ 推薦:echo 是語言結構,非函數
echo "Hello";
?>
<?php
// ❌ 雙引號會解析變數,效能稍低
$sql = "SELECT * FROM users WHERE id = $id";
// ✅ 單引號不解析,速度更快;變數用串接
$sql = 'SELECT * FROM users WHERE id = ' . $id;
?>
echo 多參數用逗號而非點號串接<?php
// ❌ 點號串接:先建立臨時字串再輸出
echo 'Name: ' . $name . ', Age: ' . $age;
// ✅ 逗號分隔:直接依序輸出,無臨時字串開銷
echo 'Name: ', $name, ', Age: ', $age;
?>
htmlspecialchars 必加 ENT_QUOTES<?php
// ❌ 預設 ENT_COMPAT 僅轉義雙引號,單引號仍可注入屬性
echo htmlspecialchars($input);
// ✅ 轉義單雙引號,防屬性逃逸 XSS
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
?>
「懂 PHP 的人多如牛毛,但寫出乾淨、安全、可維護代碼的工程師卻稀缺。」從今天開始,將這六個習慣內化為肌肉記憶,你的代碼質量將躍升一個台階。