程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 什麼情況下可以不寫PHP的閉合標簽“?>”,不寫php

什麼情況下可以不寫PHP的閉合標簽“?>”,不寫php

編輯:關於PHP編程

什麼情況下可以不寫PHP的閉合標簽“?>”,不寫php


在一些PHP項目裡我們經常會看到有些PHP文件中的代碼是只有開始標簽,而沒有結束標簽的,那麼什麼情況下可以不寫這個結束標簽,而什麼情況下又必須寫?

對此我們先來看2個例子:

下面的代碼可以正常運行:

<?php
  echo 123456;

下面的代碼會報錯:

<?php
  echo 123456;
  <p>abc</p>

原因分析:
前者是純php代碼,可以不寫結束標簽,也不推薦寫結束標簽;後者除了php代碼,還有html代碼,必須要寫結束標簽。
 
那麼為什麼不推薦前者寫結束標簽呢?
因為在不寫php結束標簽時,默認從開始標簽往後都是php代碼,如果有其他代碼,那就會報錯。php只能運行在php標簽裡面的腳本,在腳本之外的所有字符,包括你看不見的空格或者回車,制表符號,都是作為輸出內容會response到客戶端的,這樣就有可能會產生意想不到的事情。例如文件裡面使用了header函數,這個文件同時又包含了另外一個文件,並且被包含的文件的php標簽外有空字符,這個時候會報header already send的錯誤。我們查看一些網頁的源代碼看到的開頭部分有很多空格和換行,就是因為這個原因導致的。

解決方案建議:

庫文件、或者一些class文件等只有純php代碼的文件不推薦加結束標簽。

相信本文所述對大家的PHP程序設計有一定的參考價值。


為何有時 php 沒有寫閉合標簽結束符?

找了一些資料,大家對PHP閉合標簽的總結如下:好處:如果這個是一個被別人包含的程序,沒有這個結束符,可以減少很多很多問題,比如說:header, setcookie, session_start這些動作之前不能有輸出,如果不小心在? 後邊加了不可見字符(多余的空格、換行符)等破壞頁面顯示,就會報Header already sent錯誤,不寫的話不會有此問題。另,可以直接把光標移到最後,接著編程。壞處:在dreamweaver的視圖模式下,一團糟。關於PHP閉合標簽官方解釋是:PHP閉合標簽?在PHP中對PHP的分析器是可選的。但是,如果使用閉合標簽,任何由開發者,用戶,或者FTP應用程序插入閉合標簽後面的空格都有可能會引起多余的輸出、php錯誤、之後的輸出無法顯示、空白頁。因此,所有的php文件應該省略這個php閉合標簽,並插入一段注釋來標明這是文件的底部並定位這個文件在這個應用的相對路徑。這樣有利於你確定這個文件已經結束而不是被刪節的。不當的:<?phpecho Here’s my code!;?適當的:<?phpecho Here’s my code!;/* End of file myfile.php */因此,如果是純php code的話,應該省略?結束標識符。
 

為何有些人的PHP文件不寫PHP語言結束標簽 - 技術問答

如果該文件不單獨執行,也就是說必定被其他文件包含時,推薦不寫結束標簽,不是不推薦,而是有其特殊意義
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved