PHP 定界符 使用技巧
更新時(shí)間:2009年06月14日 14:22:28 作者:
因?yàn)镻HP是一個(gè)Web編程語(yǔ)言,在編程過(guò)程中難免會(huì)遇到用echo來(lái)輸出大段的html和javascript腳本的情況
如果用傳統(tǒng)的輸出方法——按字符串輸出的話,肯定要有大量的轉(zhuǎn)義符來(lái)對(duì)字符串中的引號(hào)等特殊字符進(jìn)行轉(zhuǎn)義,以免出現(xiàn)語(yǔ)法錯(cuò)誤。如果是一兩處還可以容忍,但是要是一個(gè)完整的html文本或者是一個(gè)200行的js我想是誰(shuí)都會(huì)崩潰的。這就是PHP為什么要引入一個(gè)定界符的原因——至少一大部分原因是這樣的。
1.PHP定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內(nèi)部的東西;
2.在PHP定界符中的任何特殊字符都不需要轉(zhuǎn)義;
3.PHP定界符中的PHP變量會(huì)被正常的用其值來(lái)替換。
PHP中的定界符格式是這樣的:
<<<Eof
……
Eof;
看起來(lái)很簡(jiǎn)單,但是其中有許多地方需要注意。
首先在<<<之后的字符Eof是自己定義的,隨便什么都是可以的(比如AAA都可以),但是結(jié)尾處的字符一定要和他一樣,他們是成對(duì)出現(xiàn)的,就像{}這樣的——這是最基本的。
在PHP定界符使用的過(guò)程中,第二個(gè)需要注意的問(wèn)題——也是最經(jīng)常出現(xiàn)問(wèn)題的地方:
結(jié)尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;這個(gè)定界符結(jié)尾標(biāo)識(shí)之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出現(xiàn)空格,制表符的話,你會(huì)收到一個(gè)這樣的錯(cuò)誤信息:
Parse error: parse error, unexpected $end in……,提示你語(yǔ)法錯(cuò)誤;
第三個(gè)需要注意的是,如果在定界符中間出現(xiàn)有PHP的變量,你只需要像在其它字符串中輸出一樣寫就行了,例如
<<<Eof
hello{$name}
Eof;
變量$name之所以要用{}括起來(lái)是要告訴PHP解析器這是一個(gè)PHP變量,其實(shí)不用也是可以的,但是有可能會(huì)產(chǎn)生歧義,例如你的變量后面剛好不是一字母或者特殊符號(hào)什么的會(huì)怎么樣呢?千萬(wàn)不能有這樣的寫法
<<<Eof
hello<?php echo $name?>
Eof;
這樣的情況,你同樣會(huì)收到一個(gè)語(yǔ)法錯(cuò)誤的信息。先便是一個(gè)戰(zhàn)地測(cè)試過(guò)的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;
?>
1.PHP定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內(nèi)部的東西;
2.在PHP定界符中的任何特殊字符都不需要轉(zhuǎn)義;
3.PHP定界符中的PHP變量會(huì)被正常的用其值來(lái)替換。
PHP中的定界符格式是這樣的:
復(fù)制代碼 代碼如下:
<<<Eof
……
Eof;
看起來(lái)很簡(jiǎn)單,但是其中有許多地方需要注意。
首先在<<<之后的字符Eof是自己定義的,隨便什么都是可以的(比如AAA都可以),但是結(jié)尾處的字符一定要和他一樣,他們是成對(duì)出現(xiàn)的,就像{}這樣的——這是最基本的。
在PHP定界符使用的過(guò)程中,第二個(gè)需要注意的問(wèn)題——也是最經(jīng)常出現(xiàn)問(wèn)題的地方:
結(jié)尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;這個(gè)定界符結(jié)尾標(biāo)識(shí)之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出現(xiàn)空格,制表符的話,你會(huì)收到一個(gè)這樣的錯(cuò)誤信息:
Parse error: parse error, unexpected $end in……,提示你語(yǔ)法錯(cuò)誤;
第三個(gè)需要注意的是,如果在定界符中間出現(xiàn)有PHP的變量,你只需要像在其它字符串中輸出一樣寫就行了,例如
復(fù)制代碼 代碼如下:
<<<Eof
hello{$name}
Eof;
變量$name之所以要用{}括起來(lái)是要告訴PHP解析器這是一個(gè)PHP變量,其實(shí)不用也是可以的,但是有可能會(huì)產(chǎn)生歧義,例如你的變量后面剛好不是一字母或者特殊符號(hào)什么的會(huì)怎么樣呢?千萬(wàn)不能有這樣的寫法
復(fù)制代碼 代碼如下:
<<<Eof
hello<?php echo $name?>
Eof;
這樣的情況,你同樣會(huì)收到一個(gè)語(yǔ)法錯(cuò)誤的信息。先便是一個(gè)戰(zhàn)地測(cè)試過(guò)的PHP定界符的正確寫法。里面包含了,html和javascript的代碼:
復(fù)制代碼 代碼如下:
<?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;
?>
相關(guān)文章
PHP生成制作驗(yàn)證碼的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇PHP生成制作驗(yàn)證碼的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
PHP實(shí)現(xiàn)鏈表的定義與反轉(zhuǎn)功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)鏈表的定義與反轉(zhuǎn)功能,結(jié)合實(shí)例形式分析了PHP鏈表的基本定義、添加、移除、遍歷以及兩種反轉(zhuǎn)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06
php class中public,private,protected的區(qū)別以及實(shí)例分析
本篇文章是對(duì)php class中public,private,protected的區(qū)別以及實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
6種解決PHP Trait屬性沖突問(wèn)題的方法小結(jié)
在PHP中,Trait是一種用于在類之間共享方法的方法,然而,Trait中的成員屬性可能會(huì)導(dǎo)致沖突,所以本文為大家整理了6種解決Trait屬性沖突的方法,希望對(duì)大家有所幫助2024-02-02
24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧
這篇文章主要為大家分享了24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧,幫助大家更好的進(jìn)行PHP項(xiàng)目開發(fā),感興趣的小伙伴們可以參考一下2016-07-07
php圖片加水印原理(超簡(jiǎn)單的實(shí)例代碼)
我看到網(wǎng)上有好多關(guān)于圖片加水印的類,寫的很好 ,我這里只是把相應(yīng)的原理寫下,具體需求,根據(jù)自己的情況來(lái)修改,很簡(jiǎn)單的,寫的不好,高手見諒2013-01-01
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)子類擴(kuò)展父類(子類重新載入父類)操作詳解
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)子類擴(kuò)展父類(子類重新載入父類)操作,涉及php面向?qū)ο蠓椒ㄖ貙懪c擴(kuò)展相關(guān)操作技巧,需要的朋友可以參考下2019-06-06

