PHP 定界符 提示

來源:互聯網
上載者:User

如果用傳統的輸出方法——按字串輸出的話,肯定要有大量的轉義符來對字串中的引號等特殊字元進行轉義,以免出現語法錯誤。如果是一兩處還可以容忍,但是要是一個完整的html文本或者是一個200行的js我想是誰都會崩潰的。這就是PHP為什麼要引入一個定界符的原因——至少一大部分原因是這樣的。
1.PHP定界符的作用就是按照原樣,包括換行格式什麼的,輸出在其內部的東西;
2.在PHP定界符中的任何特殊字元都不需要轉義;
3.PHP定界符中的PHP變數會被正常的用其值來替換。
PHP中的定界符格式是這樣的: 複製代碼 代碼如下:<<<Eof
……
Eof;

看起來很簡單,但是其中有許多地方需要注意。
首先在<<<之後的字元Eof是自己定義的,隨便什麼都是可以的(比如AAA都可以),但是結尾處的字元一定要和他一樣,他們是成對出現的,就像{}這樣的——這是最基本的。
在PHP定界符使用的過程中,第二個需要注意的問題——也是最經常出現問題的地方:
結尾的一行(如上例的Eof;),一定要另起一行,並且改行除了Eof;這個定界符結尾標識之外不能有任何其他字元,前後都不能有,包括空格。如果在本行最前或者最後出現空格,定位字元的話,你會收到一個這樣的錯誤資訊:
Parse error: parse error, unexpected $end in……,提示你語法錯誤;
第三個需要注意的是,如果在定界符中間出現有PHP的變數,你只需要像在其它字串中輸出一樣寫就行了,例如 複製代碼 代碼如下:<<<Eof
hello{$name}
Eof;

變數$name之所以要用{}括起來是要告訴PHP解析器這是一個PHP變數,其實不用也是可以的,但是有可能會產生歧義,例如你的變數後面剛好不是一字母或者特殊符號什麼的會怎麼樣呢?千萬不能有這樣的寫法 複製代碼 代碼如下:<<<Eof
hello<?php echo $name?>
Eof;

這樣的情況,你同樣會收到一個語法錯誤的資訊。先便是一個戰地測試過的PHP定界符的正確寫法。裡麵包含了,html和javascript的代碼: 複製代碼 代碼如下:<?php
$name = 'kitty';
echo <<<Eof
<table height="20">
<tr><td>
{$name}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td></tr>
</table>
Eof;
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.