<?php//nowdoc(單引號定界符)
//abc可以是任合內容,放在單引號中
$c=<<<'abc'這裡可以是任合內容
我是歷的苛奪基
本原則葉落歸根在運
輸費艱難田¥¥&……
abc;
echo$c;
?>
<?php
//heredoc(雙引號定界符)
//abc可以是任合內容,放在雙引號中或是不加引號
$c=<<這裡可以是任合內容
我是歷的苛奪基
本原則葉落歸根在運
輸費艱難田¥¥&……
abc;
echo$c;
?>
如果用傳統的輸出方法——按字串輸出的話,肯定要有大量的轉義符來對字串中的引號等特殊字元進行轉義,以免出現語法錯誤。如果是一兩處還可以容忍,但是要是乙個完整的html文字或者是乙個200行的js我想是誰都會崩潰的。這就是php為什麼要引入乙個定界符的原因——至少一大部分原因是這樣的。
1.php定界符的作用就是按照原樣,包括換行格式什麼的,輸出在其內部的東西;
2.在php定界符中的任何特殊字元都不需要轉義;
3.php定界符中的php變數會被正常的用其值來替換。
php中的定界符格式是這樣的:
<<
看起來很簡單,但是其中有許多地方需要注意。
首先在《之後的字元eof是自己定義的,隨便什麼都是可以的(比如aaa都可以),但是結尾處的字元一定要和他一樣,他們是成對出現的,就像{}這樣的——這是最基本的。
在php定界符使用的過程中,第二個需要注意的問題——也是最經常出現問題的地方:
結尾的一行(如上例的eof;),一定要另起一行,並且改行除了eof;這個定界符結尾標識之外不能有任何其他字元,前後都不能有,包括空格。如果在本行最前或者最後出現空格,製表符的話,你會收到乙個這樣的錯誤資訊:
parse error: parse error, unexpected $end in……,提示你語法錯誤;
第三個需要注意的是,如果在定界符中間出現有php的變數,你只需要像在其它字串中輸出一樣寫就行了,例如
<<
變數$name之所以要用{}括起來是要告訴php解析器這是乙個php變數,其實不用也是可以的,但是有可能會產生歧義,例如你的變數後面剛好不是一字母或者特殊符號什麼的會怎麼樣呢?千萬不能有這樣的寫法
<<
eof;
這樣的情況,你同樣會收到乙個語法錯誤的資訊。先便是乙個戰地測試過的php定界符的正確寫法。裡面包含了,html和j**ascript的**:
<?php$name = 'kitty';
echo
<
?>
php 定界符格式引起的錯誤
錯誤 parse error syntax error,unexpected end in h w程式設計客棧amp www testing test 2.1.4.php on line 16 錯誤源 複製 如下 str 測試字串 測kcxeuk試字串 測試字串 eod echo str 為定界符定...
php定界符方便好用
定界符 另一種給字串定界的方法使用定界符語法 應該在 之後提供乙個識別符號,然後是字串,然後是同樣的識別符號結束字串。結束識別符號必須從行的第一列開始。同樣,識別符號也必須遵循 php 中其它任何標籤的命名規則 只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。警告 很重要的一點必須指出,結...
php 定界符和 雙引號區別
定界符 另一種給字串定界的方法使用定界符語法 應該在 之後提供乙個識別符號,然後是字串,然後是同樣的識別符號結束字串。結束識別符號必須從行的第一列開始。同樣,識別符號也必須遵循 php 中其它任何標籤的命名規則 只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。警告 很重要的一點必須指出,結...