php 中(<<<eot)的用法
有時(shí)候我們需要在php輸出比較復(fù)雜的html文本,如果使用雙引號(hào)的話,文本里面有雙引號(hào)的
例:
<?php
while($rs=$db->fetch_array($news)){
echo <<<EOT
<li>
<a href="?{$rs[id]}">{$rs[title]}</a><img src="images/new.gif" alt=""><span>[{$rs[date]}]</span></li>
EOT; //注意,此處的EOT;必須在當(dāng)前行的最前,其前面不允許有任何字符
?>
從上面的例子可以看出<<<eot為開始標(biāo)識(shí),結(jié)束為eot; 中間引用變量則就為{變量} 這種方法通常用在生成靜態(tài)度頁面時(shí),可以把此代碼寫在靜態(tài)文件中,然后然后用來調(diào)用即可
定界符
給字符串定界的方法使用定界符語法("<<<")。應(yīng)該在 <<< 之后提供一個(gè)標(biāo)識(shí)符,然后是字符串,然后是同樣的標(biāo)識(shí)符結(jié)束字符串。
結(jié)束標(biāo)識(shí)符必須從行的第一列開始。同樣,標(biāo)識(shí)符也必須遵循 PHP 中其它任何標(biāo)簽的命名規(guī)則:只能包含字母數(shù)字下劃線,而且必須以下劃線或非數(shù)字字符開始。
舉個(gè)例子:
<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
?>
但要注意的是:
結(jié)束標(biāo)識(shí)符所在的行不能包含任何其它字符,可能除了一個(gè)分號(hào)(;)之外。這尤其意味著該標(biāo)識(shí)符不能被縮進(jìn),而且在分號(hào)之前和之后都不能有任何空格或制表符。同樣重要的是要意識(shí)到在結(jié)束標(biāo)識(shí)符之前的第一個(gè)字符必須是你的操作系統(tǒng)中定義的換行符。例如在 Macintosh 系統(tǒng)中是 \r。 如果破壞了這條規(guī)則使得結(jié)束標(biāo)識(shí)符不"干凈",則它不會(huì)被視為結(jié)束標(biāo)識(shí)符,PHP 將繼續(xù)尋找下去。如果在這種情況下找不到合適的結(jié)束標(biāo)識(shí)符,將會(huì)導(dǎo)致一個(gè)在腳本最后一行出現(xiàn)的語法錯(cuò)誤。
如下:
print <<<eot
eot;
中間可以放置變量的,如果是數(shù)組變量也是可以的。
假如數(shù)組
$arrTest=array("abc","123");
在eot之間可以用以下方式置入變量
"{$arrTest[0]}"
]]>