PHP作為一款后端語(yǔ)言,為了輸出給瀏覽器讓瀏覽器呈現(xiàn)出來(lái),無(wú)可避免的要輸出HTML代碼,下文介紹下我用過(guò)的三種PHP/HTML混編方法
1、單/雙引號(hào)包圍法
這是最初級(jí)的方法了,用法就像下面這樣
<?php echo ' <!DOCTYPE html> <html> <head> <title> </title> </head> <body> <span>測(cè)試頁(yè)面</span> </body> </html> ';?>
這樣是最簡(jiǎn)單的一種方法了,直接用單引號(hào)包裝上就行了
至于雙引號(hào)和單引號(hào)的區(qū)別,就在于前者解析引號(hào)內(nèi)的變量,而后者不解析引號(hào)內(nèi)的變量,參看下面的例子
<?php $Content='Hello!'; echo "$Content"; echo '<br>'; echo '$Content'; ?>
輸出
1 Hello!
2 $Content
由此可見(jiàn),用雙引號(hào)包圍的字符串中的變量名自動(dòng)解析為了變量值,而用單引號(hào)包圍則依然顯示變量名
這樣書(shū)寫(xiě)的缺點(diǎn)有兩點(diǎn)
1、如果輸出內(nèi)容中包含單/雙引號(hào)將極難處理,因?yàn)镻HP無(wú)法判斷這個(gè)引號(hào)是屬于程序的還是輸出內(nèi)容的,所以會(huì)報(bào)錯(cuò)
2、這樣書(shū)寫(xiě)一些現(xiàn)代文本編輯器(如SublimeText)將無(wú)法對(duì)引號(hào)包圍的輸出的內(nèi)容進(jìn)行語(yǔ)法著色,如果出現(xiàn)一些格式問(wèn)題將極難發(fā)現(xiàn)。圖中為SublimeText3的一張截圖,上面的是正常的著色,下面則是用引號(hào)包圍的著色
2、使用HEREDOC/NOWDOC
HEREDOC和NOWDOC是PHP5.3開(kāi)始支持的一種新特性,它允許在程序中使用一種自定義的標(biāo)志符來(lái)包圍文本,而HEREDOC和NOWDOC的關(guān)系就類似于雙引號(hào)包圍和單引號(hào)包圍一樣,前者解析區(qū)塊內(nèi)的變量,而后者不解析區(qū)塊內(nèi)的變量
下面介紹HEREDOC和NOWDOC的用法
<?php $Content='Hello!'; //下面寫(xiě)出了一個(gè)HEREDOC,其中標(biāo)識(shí)LABEL可以自定義為任何字符串,但要保證開(kāi)頭的標(biāo)識(shí)和結(jié)尾的標(biāo)識(shí)一樣 echo <<<LABEL $Content LABEL; //結(jié)尾的方法:另起一行,打上LABEL。注意結(jié)尾的標(biāo)識(shí)前面和后面不要插入任何字符,空格也不行 echo '<br>';//為了演示方便換行 //NOWDOC和HEREDOC的書(shū)寫(xiě)方式差別在于NOWDOC的標(biāo)識(shí)符需要用單引號(hào)包圍 echo <<<'LABEL' $Content LABEL; //其他無(wú)異 ?>
也可以參考PHP.net上的關(guān)于這兩個(gè)的wiki:https://wiki.php.net/rfc/heredoc-with-double-quotes
用HEREDOC/NOWDOC書(shū)寫(xiě)極好的解決了包圍引號(hào)的問(wèn)題,但依然沒(méi)有解決語(yǔ)法著色失效的問(wèn)題
3、HTML中嵌入PHP程序塊(推薦)
這是一種非常合適的辦法,并且這種方法廣泛用在了諸如WordPress模板等場(chǎng)合中。書(shū)寫(xiě)起來(lái)也較為方便,直接在需要輸出的地方寫(xiě)上相關(guān)的代碼就行了,就像下面這樣
<?php //首先在這里寫(xiě)好相關(guān)的調(diào)用代碼 function OutputTitle(){ echo 'TestPage'; } function OutputContent(){ echo 'Hello!'; } //然后再下面調(diào)用相關(guān)函數(shù)就可以了 ?> <!DOCTYPE html> <html> <head> <title><?php OutputTitle(); ?></title> </head> <body> <span><?php OutputContent(); ?></span> </body> </html>
我認(rèn)為這種方法是在這三種方法中最好的,但是這樣做的缺點(diǎn)是如果這樣的代碼塊一多了就會(huì)嚴(yán)重影響程序閱讀。
4、使用前端模板引擎
由于前端的重要性在整個(gè)Web開(kāi)發(fā)中日益上升,現(xiàn)在前/后端工程師逐漸在分離成兩個(gè)職業(yè),所以說(shuō)為了確保前/后端工程師能夠相互配合,使前端開(kāi)發(fā)和后端開(kāi)發(fā)出來(lái)的東西對(duì)接更完美,逐漸催生出了一系列前端模板引擎,比如Smarty。使用Smarty書(shū)寫(xiě)的實(shí)現(xiàn)代碼可讀性非常的高,這使前/后端的分離也更加的高效和便捷。有興趣的同學(xué)可以去搜索了解
以上就是為什么html和php混合使用?html和php混寫(xiě)的四種方式的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選