在一些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程序設計有一定的參考價值。