PHP中nowdoc和heredoc使用需要注意的一點(diǎn)
最后發(fā)現(xiàn)了問題所在,原來這類文檔在結(jié)束時,一定要靠近行的第一位,就是說EOF前面不能有空格,而為了代碼縮進(jìn),正好產(chǎn)生了這樣的問題.
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;//EOD一定要靠近前面,不能有空格,同時不要漏掉結(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)镻HP5.3才引進(jìn)的nowdoc語法,很多云托管壞境很有可能不支持導(dǎo)致歇菜。
最后強(qiáng)調(diào)下,heredoc是從PHP4.0開始引進(jìn)的,而nowdoc語法則需要5.3版本,因?yàn)閔eredoc包含了nowdoc的功能,所以個人建議還是使用heredoc比較好些。
簡單來說:
1、heredoc是動態(tài)的 nowdoc是靜態(tài)的
2、heredoc類似多行的雙引號 newdoc類似多行的單引號
3、heredoc是一種專門處理大段字符串的通用處理方案,而nowdoc是php為了彌補(bǔ)動態(tài)實(shí)現(xiàn)“heredoc”的效率問題而實(shí)現(xiàn)的“高效率”的靜態(tài)版本
相關(guān)文章
PHP實(shí)現(xiàn)的微信APP支付功能示例【基于TP5框架】
這篇文章主要介紹了PHP實(shí)現(xiàn)的微信APP支付功能,結(jié)合實(shí)例形式分析了基于TP5框架的微信APP支付相關(guān)原理、操作步驟與處理技巧,需要的朋友可以參考下2019-09-09php微信高級接口調(diào)用方法(自定義菜單接口、客服接口、二維碼)
這篇文章主要為大家詳細(xì)介紹了php微信高級接口調(diào)用方法,包括自定義菜單接口、客服接口、二維碼等,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11laravel5.5添加echarts實(shí)現(xiàn)畫圖功能的方法
今天小編就為大家分享一篇laravel5.5添加echarts實(shí)現(xiàn)畫圖功能的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10