首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 什麼情況下可以省略關閉標籤「?>」

     編輯:PHP 綜合知識

在許多 PHP 專案中,常見純 PHP 檔案只有開頭 <?php 而沒有結尾 ?>。這並非疏忽,而是官方推薦的最佳實踐。本文解析何時可省略、何時必須保留,以及背後的原理。

兩個對比範例

範例 1:純 PHP 程式碼——可省略、且建議省略



範例 2:混雜 HTML——必須保留結尾標籤


abc

核心原理分析

  • 純 PHP 檔案:解析器從 <?php 開始執行,直到檔案結束。結尾標籤屬選擇性,**強烈建議省略**。
  • 混雜 HTML/文字:PHP 解析器遇到 ?> 會切換到「輸出模式」,後續內容直接輸出至瀏覽器。若缺少 ?>,HTML 會被當成 PHP 程式碼解析,導致錯誤。

為何不建議在純 PHP 檔案加上結尾標籤?

避免「Header already sent」經典錯誤:

  1. 結尾標籤後若有任何字符(空白、換行、BOM、製表符),都會被輸出到瀏覽器。
  2. 若此檔案被 include/require 到另一個使用 header()、session_start()、setcookie() 的檔案中,這些隱形輸出會導致 Header 過早發送,拋出警告。
  3. 許多網頁原始碼開頭出現大量空白行,就是此原因造成。

最佳實踐建議

PSR-2 程式碼風格規範亦明確要求:純 PHP 檔案**必須省略**結尾標籤。

養成「純 PHP 不寫 ?>」的習慣,能有效杜絕因隱形輸出導致的難以除錯問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
檔案類型建議做法
類別檔、函式庫、設定檔、純邏輯檔省略 ?>
模板檔、視圖檔、混雜 HTML 輸出檔保留 ?>