| 寫法 | 建議 | 說明 |
|---|---|---|
<?php ... ?> | ✅ 標準 | 所有版本支援,XML/HTML5 安全 |
<? ... ?> | ❌ 不建議 | 需開啟 short_open_tag,與 XML 宣告衝突 |
<script language="php">...</script> | ❌ 已移除 | PHP 7.0 移除 |
<%= $var %> | ❌ 已移除 | PHP 7.0 移除,改用 <?= $var ?> |
最佳實踐:純 PHP 檔案省略結束標籤 `?>`,避免輸出空白字元導致 Header 發送失敗。
; 結尾。?> 隱含分號,前一行可省略(但建議保留一致性)。<?php
// 單行註解(C++ 風格)
# 單行註解(Shell 風格,較少用)
/*
* 多行註解
* 可跨越多行
* 適合區塊說明
*/
/**
* 文件區塊註解
* @param string $name
* @return void
* IDE 可識別產生提示
*/
| 函式/語法 | 特性 | 範例 |
|---|---|---|
echo | 語言結構,非函式,無回傳值,可接多參數 | echo 'Hello', 'World'; |
print | 函式,回傳 1,僅接受單一參數 | print 'Hello'; |
printf/sprintf | 格式化輸出 | printf('%.2f', 3.14159); |
var_dump/print_r | 除錯輸出結構 | var_dump($arr); |
<?= $var ?> | 短輸出標籤,等同 <?php echo $var; ?> | 模板中常用 |
$ 開頭,區分大小寫($name ≠ $Name)。${'valid-name'} 可用花括號包裹特殊名稱。$_GET、$_POST、$_REQUEST、$_COOKIE、$_SESSION、$_SERVER、$_FILES、$_ENV、$GLOBALS。| 特性 | 單引號 '...' | 雙引號 "..." |
|---|---|---|
| 變數插值 | ❌ 直接輸出字面內容 | ✅ 自動解析變數 |
| 跳脫字元 | 僅 \'、\\ | 完整支援 \n、\t、\$、\"、Unicode \u{1F600} |
| 解析速度 | 略快(無掃描插值) | 略慢(需掃描) |
| 適用場景 | 純靜態字串、大量輸出、SQL 片段 | 需插值、換行、跳脫字元 |
$name = 'PHP';
echo 'Hello $name'; // Hello $name
echo "Hello $name"; // Hello PHP
echo "Hello {$name}"; // Hello PHP(複雜表達式建議加花括號)
<?php
// Heredoc:雙引號行為,支援插值
$sql = <<
結束標記必須獨佔一行、行首無縮排、分號可選。
error_reporting(E_ALL) 並使用靜態分析。掌握標籤、分隔、註解、輸出、變數、引號差異,即打下 PHP 開發的堅實基礎。建議搭配 PHPStan Level 5+ 靜態分析、PHP_CodeSniffer (PSR-12) 程式碼風格檢查,從第一行代碼開始養成專業習慣。