|
最后發(fā)現(xiàn)了問題所在,原來這類文檔在結(jié)束時(shí),一定要靠近行的第一位,就是說EOF前面不能有空格,而為了代碼縮進(jìn),正好產(chǎn)生了這樣的問題.
復(fù)制代碼 代碼如下:
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;//EOD一定要靠近前面,不能有空格,同時(shí)不要漏掉結(jié)束符分號;
附:heredoc和nowdoc的區(qū)別
heredoc使用 <<< EOT 的標(biāo)示符,而nowdoc使用 <<< 'EOT' 這樣的標(biāo)示符,其中nowdoc是php5.3引進(jìn)的新技術(shù),它包含了heredoc的語法,只是其中的內(nèi)容絕對不會進(jìn)行任何的轉(zhuǎn)義和解釋,是什么內(nèi)容就是什么內(nèi)容,不會解析php相關(guān)的內(nèi)容
heredoc中的php變量建議使用{$name->change()} 大括號括起來,這樣可以避免一定的歧義,如果要原樣輸出可以使用傳說中的轉(zhuǎn)義字符 / ,轉(zhuǎn)義字符本身可以使用轉(zhuǎn)義字符進(jìn)行輸出,即 / 這種表示方法,大括號之類的這些都需要轉(zhuǎn)義輸出。
為了保證的確可用,建議使用 heredoc 的語法,本身也帶有轉(zhuǎn)義,因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php5.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類似多行的雙引號 newdoc類似多行的單引號
3、heredoc是一種專門處理大段字符串的通用處理方案,而nowdoc是php為了彌補(bǔ)動(dòng)態(tài)實(shí)現(xiàn)“heredoc”的效率問題而實(shí)現(xiàn)的“高效率”的靜態(tài)版本
php技術(shù):PHP中nowdoc和heredoc使用需要注意的一點(diǎn),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。