---恢復內容開始---php
2019年2月22日09:49:54正則表達式
參考文檔: http://php.net/manual/zh/language.types.string.php#language.types.string.syntax.heredocspa
單引號 ¶ 定義一個字符串的最簡單的方法是用單引號把它包圍起來(字符 ')。 要表達一個單引號自身,需在它的前面加個反斜線(\)來轉義。要表達一個反斜線自身,則用兩個反斜線(\\)。其它任何方式的反斜線都會被當成反斜線自己:也就是說若是想使用其它轉義序列例如 \r 或者 \n,並不表明任何特殊含義,就單純是這兩個字符自己。
雙引號 ¶ 若是字符串是包圍在雙引號(")中, PHP 將對一些特殊的字符進行解析: 轉義字符 序列 含義 \n 換行(ASCII 字符集中的 LF 或 0x0A (10)) \r 回車(ASCII 字符集中的 CR 或 0x0D (13)) \t 水平製表符(ASCII 字符集中的 HT 或 0x09 (9)) \v 垂直製表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起) \e Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起) \f 換頁(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起) \\ 反斜線 \$ 美圓標記 \" 雙引號 \[0-7]{1,3} 符合該正則表達式序列的是一個以八進制方式來表達的字符 \x[0-9A-Fa-f]{1,2} 符合該正則表達式序列的是一個以十六進制方式來表達的字符 和單引號字符串同樣,轉義任何其它字符都會致使反斜線被顯示出來。PHP 5.1.1 之前,\{$var} 中的反斜線還不會被顯示出來。
Heredoc 結構 ¶ 第三種表達字符串的方法是用 heredoc 句法結構:<<<。在該運算符以後要提供一個標識符,而後換行。接下來是字符串 string 自己,最後要用前面定義的標識符做爲結束標誌。 結束時所引用的標識符必須在該行的第一列,並且,標識符的命名也要像其它標籤同樣遵照 PHP 的規則:只能包含字母、數字和下劃線,而且必須以字母和下劃線做爲開頭。 Warning 要注意的是結束標識符這行除了可能有一個分號(;)外,絕對不能包含其它字符。這意味着標識符不能縮進,分號的先後也不能有任何空白或製表符。更重要的是結束標識符的前面必須是個被本地操做系統承認的換行,好比在 UNIX 和 Mac OS X 系統中是 \n,
而結束定界符(可能其後有個分號)以後也必須緊跟一個換行。 若是不遵照該規則致使結束標識不「乾淨」,PHP 將認爲它不是結束標識符而繼續尋找。若是在文件結束前也沒有找到一個正確的結束標識符,PHP 將會在最後一行產生一個解析錯誤。 Heredocs 結構不能用來初始化類的屬性。自 PHP 5.3 起,此限制僅對 heredoc 包含變量時有效。
$code = <<<CODE <?php $string; CODE;
$string;會是變量
Nowdoc 結構 ¶ 就象 heredoc 結構相似於雙引號字符串,Nowdoc 結構是相似於單引號字符串的。Nowdoc 結構很象 heredoc 結構,可是 nowdoc 中不進行解析操做。這種結構很適合用於嵌入 PHP 代碼或其它大段文本而無需對其中的特殊字符進行轉義。與 SGML 的 <![CDATA[ ]]>
結構是用來聲明大段的不用解析的文本相似,nowdoc 結構也有相同的特徵。 一個 nowdoc 結構也用和 heredocs 結構同樣的標記 <<<, 可是跟在後面的標識符要用單引號括起來,即 <<<'EOT'。Heredoc 結構的全部規則也一樣適用於 nowdoc 結構,尤爲是結束標識符的規則。
Heredoc 就像單引號的同樣不解析,
$code = <<<CODE <?php $string; CODE;
$string;會被解析
Nowdoc 雙引號解析定界符裏面的內容
$code = <<<"CODE" <?php $string; CODE;
OR操作系統
$code = <<<'CODE' <?php $string; CODE;
$string;不會被解析