PHP 解析器只處理標籤內的程式碼,HTML 等非 PHP 內容直接輸出。四種風格兼容性與推薦度不同:
| 風格 | 開始標籤 | 結束標籤 | 啟用條件 | 推薦度 |
|---|---|---|---|---|
| 標準風格 | <?php | ?> | 永遠啟用 | ⭐⭐⭐⭐⭐ 唯一官方保證 |
| 短標籤 | <? | ?> | short_open_tag=On | ⭐⭐ 不可攜、XML 衝突 |
| ASP 風格 | <% | %> | asp_tags=On(PHP 7 移除) | ❌ 已棄用 |
| Script 風格 | <script language="php"> | </script> | 永遠啟用 | ⭐ 過時、冗長 |
<?php
// 每句以分號結尾
echo 'Hello, World!';
$name = 'PHP';
echo "Welcome to {$name}";
?>
; php.ini
short_open_tag = On
; 重啟 PHP-FPM/Apache 生效
風險:<?xml 會被誤判為 PHP 標籤導致解析錯誤,XML/HTML5 文件共存時極易出問題。
| 類型 | 語法 | 範例 | 用途 |
|---|---|---|---|
| 單行註解 | // 或 # | // 這是註解 | 行內說明、暫時停用程式碼 |
| 多行註解 | /* ... */ | /* 多行 | 區塊說明、大段暫時停用 |
| 文件註解 | /** ... */ | /** @var string $name */ | PHPDoc 標準、IDE 智能提示、自動生成文件 |
<?php
/**
* 類別簡短說明
*
* 詳細說明可跨多行
*
* @package MyApp\Models
* @author Author Name <email@example.com>
* @version 1.0.0
* @since 2024-01-15
* @property string $name 使用者名稱
* @method void sendEmail(string $to) 發送郵件
*/
class User {
/** @var string 使用者名稱 */
public $name;
}
?>
user.php, _config.phpuser_profile_v2.php-、.、@ 等)OrderController.php、UserRepository.php、calculate_tax.phpPascalCase,腳本檔案 snake_caseC:\phpstudy_pro\WWWWWW\myappindex.php:
<?php
echo '<h1>Hello, PHP!</h1>';
phpinfo();
?>
https://localhost/myapp/| 錯誤現象 | 原因 | 解決 |
|---|---|---|
| 瀏覽器顯示原始碼 | PHP 未解析,Web Server 未載入 PHP 模組 | 檢查 Apache LoadModule php_module、Nginx fastcgi_pass |
| 空白頁面 | 語法錯誤且 display_errors=Off | php.ini 設定 display_errors=On、error_reporting=E_ALL |
| 中文亂碼 | 檔案編碼非 UTF-8 或 HTTP 標頭缺 charset | 編輯器存檔選 UTF-8、header('Content-Type: text/html; charset=utf-8') |
| 短標籤不工作 | short_open_tag=Off | 改用標準標籤 <?php(推薦) |
<?php ... ?>扎實的語法基礎是寫出可維護、可擴充 PHP 程式的關鍵。