php 中nowdoc和heredoc的差別?

怪我咯
發布: 2023-03-13 16:14:01
原創
1582 人瀏覽過

Heredoc 結構就像是沒有使用雙引號的雙引號字串,這就是說在 heredoc 結構中單引號不用被轉義。其結構中的變數將被替換,但在 heredoc 結構中含有複雜的變數時要格外小心。其對格式化輸出內容時,比較有用 。具體其有以下特點:

1、開始標記和結束標記使用相同的字串,通常以大寫字母來寫。

2、開始標記後不能出現空格或多餘的字元。

3、結束標記必須頂頭寫,不能有縮排和空格,且在結束標記結尾要有分號 。

4、位於開始標記和結束標記之間的變數可以正常解析,但是函數則不行。在heredoc中,變數不需要用連接符號.或,來拼接 。


在 PHP 5.3.0 及其以後的版本中增加了nowdoc結構,其用法和heredoc相同,不同的是Nowdoc 結構是類似於單引號字串的。 nowdoc 中不進行解析操作。這種結構很適合用於嵌入 PHP 程式碼或其它大段文字而無需對其中的特殊字元進行轉義。與 SGML 的 結構是用來宣告大段的不用解析的文字類似,nowdoc 結構也有相同的特徵。

一個nowdoc 結構也用和heredocs 結構一樣的標記<<<, 但是跟在後面的標識符要用單引號括起來,即<<<'EOT '。


heredoc使用<<< EOT 的標示符,而nowdoc使用<<< 'EOT' 這樣的標示符,其中nowdoc是PHP5.3引進的新技術,它包含了heredoc的語法,只是其中的內容絕對不會進行任何的轉義和解釋,是什麼內容就是什麼內容,不會解析PHP相關的內容
heredoc中的PHP變數建議使用{$name->change()} 大括號括起來,這樣可以避免一定的歧義,如果要原樣輸出可以使用傳說中的轉義字符\ ,轉義字符本身可以使用轉義字元進行輸出,即\ 這種表示方法,大括號之類的這些都需要轉義輸出。
為了保證的確可用,建議使用 heredoc 的語法,本身也帶有轉義,因為PHP5.3才引進的nowdoc語法,很多雲託管壞境很有可能不支持導致歇菜。
最後強調下,heredoc是從PHP4.0開始引進的,而nowdoc語法則需要5.3版本,因為heredoc包含了nowdoc的功能,所以個人建議還是使用heredoc比較好些。

簡單來說:
1、heredoc是動態的nowdoc是靜態
2、heredoc類似多行的雙引號newdoc類似多行的單引號
3、heredoc是一種專門處理大段字串的通用處理方案,而nowdoc是php為了彌補動態實現“heredoc”的效率問題而實現的“高效率”的靜態版本

以上是php 中nowdoc和heredoc的差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!