PHP學習日誌(三)EOF heredoc

2021-10-06 03:53:26 字數 1629 閱讀 8298

1.eof可以用任意其它字元代替,只需保證結束標識與開始標識一致。

2.結束標識必須頂格獨自佔一行,且必須以;結尾。

3.開始標識可以不帶引號或帶單雙引號,不帶引號與帶引號效果一致。

4.不帶引號解釋內嵌的變數和轉義符號,帶引號則不解釋內嵌的變數和轉義符號。

接下來用一段**來熟悉以上基本要求:

<?php 

echo <<1.eof可以用任意其它字元代替,只需保證結束標識與開始標識一致

2.結束標識必須頂格獨自佔一行

3.開始標識可以不帶引號或帶單雙引號,不帶引號與帶雙引號效果一致

4.不帶引號解釋內嵌的變數和轉義符號,帶單引號則不解釋內嵌的變數和轉義符號eof;

輸出結果如下:

在eof使用的基本要求中,表明:帶引號不解釋內嵌的變數和轉義符號。

繼續編寫一段**測試一下:

<?php 

echo "<

理想中的效果應該是這樣的:

然而,現實中它是這樣的:

不難看出,加上引號之後按原格式打出來的eof(此處將其用eot替換,以證實使用基本要求的第一點,相應錯誤與此字串無關)在執行介面多顯示了開頭一行的====.

此處出現的問題用比較的處理方式處理後**如下:

<?php 

echo "";

然而執行效果可以說是極差,因為少顯示了一行的橫線==< hr />==是乙個無法逆轉的悲劇。

此處問題我暫時未在網上找到有關描述,亦未找到相應解決辦法。若有哪位大佬了解此問題,還請一定要向萌新我安利一下貼文位址(在此先提前感謝一波)。

在使用基本要求的第四條中,不帶引號解釋內嵌的變數和轉義符號,帶引號則不解釋內嵌的變數和轉義符號 這句話看起來難免有點雲裡霧裡。

在此容我偷個小小的懶,用上述兩端**作以解釋:

不難看出,在不帶引號的情況下,欄位中輸入的引號是被自動翻譯並顯示於頁面上的;而在帶引號的情況下,在字段中輸入引號,且想要它在不加轉義符號(可以理解為第二段**中"前的)的前提下在頁面中被自動翻譯出來,結果是這樣的:

顯示的大概不夠清晰,具體口述效果為:

在加引號的情況下,在字段中輸入引號的話會直接顯示報錯;而想要引號在執行器中不報錯且能正常在網頁中顯示,則必須在引號前加上\轉義。

在加上\後,令人揪心的報錯也就沒有了:

PHP學習日誌(六)常量

php中常量命名須遵循 常量由英文本母 下劃線 和數字組成,但數字不能作為首字母出現。常量名不需要加 修飾符 bool define string name mixed value bool case insensitive false 其中引數 name,為常量名稱 識別符號 必選 value,為...

PHP學習記錄(三)

一 字串方法 1 去除空格 trim str 去除兩端空格。ltrim 去除左端空格 rtrim 去除右端空格。2 獲取字串長度 strlen str 獲取英文本串的長度。mb strlen 獲取中文字串的長度。3 字串擷取 substr str 擷取位置 擷取個數 mb substr 中文字串的擷...

PHP學習之路(三)

2017.08.08 day 3 周二 晴 什麼是常量?常量可以理解為值不變的量 如圓周率 或者是常量值被定義後,在指令碼的其他任何地方都不可以被改變。php中的常量分為自定義常量和系統常量 後續小節會詳細介紹 自定義常量是根據我們開發的需要,而定義的常量,它通過使用php中的函式define 定義...