什么情況下可以不寫(xiě)PHP的閉合標(biāo)簽“?>”
在一些PHP項(xiàng)目里我們經(jīng)常會(huì)看到有些PHP文件中的代碼是只有開(kāi)始標(biāo)簽,而沒(méi)有結(jié)束標(biāo)簽的,那么什么情況下可以不寫(xiě)這個(gè)結(jié)束標(biāo)簽,而什么情況下又必須寫(xiě)?
對(duì)此我們先來(lái)看2個(gè)例子:
下面的代碼可以正常運(yùn)行:
<?php echo 123456;
下面的代碼會(huì)報(bào)錯(cuò):
<?php echo 123456; <p>abc</p>
原因分析:
前者是純php代碼,可以不寫(xiě)結(jié)束標(biāo)簽,也不推薦寫(xiě)結(jié)束標(biāo)簽;后者除了php代碼,還有html代碼,必須要寫(xiě)結(jié)束標(biāo)簽。
那么為什么不推薦前者寫(xiě)結(jié)束標(biāo)簽?zāi)兀?br />
因?yàn)樵诓粚?xiě)php結(jié)束標(biāo)簽時(shí),默認(rèn)從開(kāi)始標(biāo)簽往后都是php代碼,如果有其他代碼,那就會(huì)報(bào)錯(cuò)。php只能運(yùn)行在php標(biāo)簽里面的腳本,在腳本之外的所有字符,包括你看不見(jiàn)的空格或者回車(chē),制表符號(hào),都是作為輸出內(nèi)容會(huì)response到客戶端的,這樣就有可能會(huì)產(chǎn)生意想不到的事情。例如文件里面使用了header函數(shù),這個(gè)文件同時(shí)又包含了另外一個(gè)文件,并且被包含的文件的php標(biāo)簽外有空字符,這個(gè)時(shí)候會(huì)報(bào)header already send的錯(cuò)誤。我們查看一些網(wǎng)頁(yè)的源代碼看到的開(kāi)頭部分有很多空格和換行,就是因?yàn)檫@個(gè)原因?qū)е碌摹?/p>
解決方案建議:
庫(kù)文件、或者一些class文件等只有純php代碼的文件不推薦加結(jié)束標(biāo)簽。
相信本文所述對(duì)大家的PHP程序設(shè)計(jì)有一定的參考價(jià)值。
相關(guān)文章
php+redis實(shí)現(xiàn)消息隊(duì)列功能示例
這篇文章主要介紹了php+redis實(shí)現(xiàn)消息隊(duì)列功能,結(jié)合實(shí)例形式分析了php+redis創(chuàng)建與使用消息隊(duì)列的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
php 攻擊方法之談php+mysql注射語(yǔ)句構(gòu)造
由于PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困難,尤其是注射時(shí)語(yǔ)句的構(gòu)造方面更是個(gè)難點(diǎn),本文主要是借對(duì)Okphp BBS v1.3一些文件得簡(jiǎn)單分析,來(lái)談?wù)刾hp+mysql注射語(yǔ)句構(gòu)造方式,希望本文對(duì)你有點(diǎn)幫助。2009-10-10
基于PHP RSA密文過(guò)長(zhǎng)加密解密 越過(guò)1024的解決方法
下面小編就為大家分享一篇基于PHP RSA密文過(guò)長(zhǎng)加密解密 越過(guò)1024的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
PHP zlib擴(kuò)展實(shí)現(xiàn)頁(yè)面GZIP壓縮輸出
GZIP(GNU-ZIP)是一種壓縮技術(shù)。經(jīng)過(guò)GZIP壓縮后頁(yè)面大小可以變?yōu)樵瓉?lái)的30%甚至更小。這樣用戶瀏覽的時(shí)候就會(huì)感覺(jué)很爽很愉快!2010-06-06
基于PHP創(chuàng)建Cookie數(shù)組的詳解
本篇文章是對(duì)在PHP中創(chuàng)建Cookie數(shù)組的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
php中mail函數(shù)發(fā)送郵件失敗的解決方法
這篇文章主要介紹了php中mail函數(shù)發(fā)送郵件失敗的解決方法,涉及針對(duì)Linux運(yùn)行平臺(tái)相關(guān)組件的配置技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12

