国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php中heredoc與nowdoc介紹

2024-05-04 23:29:26
字體:
供稿:網(wǎng)友
這篇文章主要介紹了php中HEREDOC介紹,并對(duì)nowdoc以及heredoc的區(qū)別做了詳細(xì)說明,推薦給有需要的小伙伴參考下。
 
 

Heredoc技術(shù),在正規(guī)的PHP文檔中和技術(shù)書籍中一般沒有詳細(xì)講述,只是提到了這是一種Perl風(fēng)格的字符串輸出技術(shù)。但是現(xiàn)在的一些論壇程序,和部分文章系統(tǒng),都巧妙的使用heredoc技術(shù),來部分的實(shí)現(xiàn)了界面與代碼的準(zhǔn)分離,phpwind模板就是一個(gè)典型的例子。  

1.以<<<End開始標(biāo)記開始,以End結(jié)束標(biāo)記結(jié)束,結(jié)束標(biāo)記必須頂頭寫,不能有縮進(jìn)和空格,且在結(jié)束標(biāo)記末尾要有分號(hào) 。開始標(biāo)記和開始標(biāo)記相同,比如常用大寫的EOT、EOD、EOF來表示,但是不只限于那幾個(gè),只要保證開始標(biāo)記和結(jié)束標(biāo)記不在正文中出現(xiàn)即可。   

2.位于開始標(biāo)記和結(jié)束標(biāo)記之間的變量可以被正常解析,但是函數(shù)則不可以。在heredoc中,變量不需要用連接符.或,來拼接,如下: 

 

復(fù)制代碼代碼如下:

$v=2;  
$a= <<<EOF  
"abc"$v  
"123"  
EOF;  
echo $a; //結(jié)果連同雙引號(hào)一起輸出:"abc"2 "123"  

 

3.heredoc常用在輸出包含大量HTML語法d文檔的時(shí)候。比如:函數(shù)outputhtml()要輸出HTML的主頁??梢杂袃煞N寫法。很明顯第二種寫法比較簡單和易于閱讀。 

 

復(fù)制代碼代碼如下:

function outputhtml(){  
echo "<html>";  
echo "<head><title>主頁</title></head>";   
echo "<body>主頁內(nèi)容</body>";  
echo "</html>;  
}  
function outputhtml()  
{  
echo <<<EOT  
   <html>  
   <head><title>主頁</title></head>  
   <body>主頁內(nèi)容</body>  
   </html>  
EOT;  
}  
outputhtml();  

 

在heredoc中會(huì)自動(dòng)替換其中的$變量,將命令和輸入放在一塊,方便 

附:heredoc和nowdoc的區(qū)別

heredoc使用 <<< EOT 的標(biāo)示符,而nowdoc使用 <<< 'EOT' 這樣的標(biāo)示符,其中nowdoc是PHP5.3引進(jìn)的新技術(shù),它包含了heredoc的語法,只是其中的內(nèi)容絕對(duì)不會(huì)進(jìn)行任何的轉(zhuǎn)義和解釋,是什么內(nèi)容就是什么內(nèi)容,不會(huì)解析PHP相關(guān)的內(nèi)容
heredoc中的PHP變量建議使用{$name->change()} 大括號(hào)括起來,這樣可以避免一定的歧義,如果要原樣輸出可以使用傳說中的轉(zhuǎn)義字符 / ,轉(zhuǎn)義字符本身可以使用轉(zhuǎn)義字符進(jìn)行輸出,即 / 這種表示方法,大括號(hào)之類的這些都需要轉(zhuǎn)義輸出。
為了保證的確可用,建議使用 heredoc 的語法,本身也帶有轉(zhuǎn)義,因?yàn)镻HP5.3才引進(jìn)的nowdoc語法,很多云托管壞境很有可能不支持導(dǎo)致歇菜。
最后強(qiáng)調(diào)下,heredoc是從PHP4.0開始引進(jìn)的,而nowdoc語法則需要5.3版本,因?yàn)閔eredoc包含了nowdoc的功能,所以個(gè)人建議還是使用heredoc比較好些。

簡單來說:

1、heredoc是動(dòng)態(tài)的 nowdoc是靜態(tài)的
2、heredoc類似多行的雙引號(hào) newdoc類似多行的單引號(hào)
3、heredoc是一種專門處理大段字符串的通用處理方案,而nowdoc是php為了彌補(bǔ)動(dòng)態(tài)實(shí)現(xiàn)“heredoc”的效率問題而實(shí)現(xiàn)的“高效率”的靜態(tài)版本


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日土县| 淮安市| 扬州市| 洮南市| 天等县| 元谋县| 郴州市| 肥西县| 江达县| 耿马| 同江市| 利辛县| 汤阴县| 开化县| 黄骅市| 天峻县| 东兴市| 永登县| 威海市| 刚察县| 永兴县| 房产| 黄梅县| 来安县| 井陉县| 临颍县| 上思县| 绥阳县| 新津县| 永靖县| 嘉鱼县| 永城市| 彭州市| 广州市| 博客| 金坛市| 长兴县| 项城市| 肇庆市| 永顺县| 大余县|