在許多 PHP 專案中,常見純 PHP 檔案只有開頭 <?php 而沒有結尾 ?>。這並非疏忽,而是官方推薦的最佳實踐。本文解析何時可省略、何時必須保留,以及背後的原理。
範例 2:混雜 HTML——必須保留結尾標籤
abc
核心原理分析
<?php 開始執行,直到檔案結束。結尾標籤屬選擇性,**強烈建議省略**。?> 會切換到「輸出模式」,後續內容直接輸出至瀏覽器。若缺少 ?>,HTML 會被當成 PHP 程式碼解析,導致錯誤。避免「Header already sent」經典錯誤:
include/require 到另一個使用 header()、session_start()、setcookie() 的檔案中,這些隱形輸出會導致 Header 過早發送,拋出警告。| 檔案類型 | 建議做法 |
|---|---|
| 類別檔、函式庫、設定檔、純邏輯檔 | 省略 ?> |
| 模板檔、視圖檔、混雜 HTML 輸出檔 | 保留 ?> |