為了讓大家徹底理解php中的EOF,這次我們開(kāi)始一個(gè)新的章節(jié),有需要的小伙伴可以來(lái)看看。
在php中,存在一種定義字符串的方法,這就是heredoc;它可以在在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序語(yǔ)言(像Perl、PHP、Python和Ruby)之中去定義。
首先我們來(lái)看一個(gè)小小的栗子。
<?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 結(jié)束需要獨(dú)立一行且前后不能空格 echo $a; ?>
我們看這段代碼,好像“$a=
”后面的代碼十分奇特啊,居然使用了“<<<
”,而且它還有兩個(gè)一樣的EOF單詞,這是什么呢?這又有什么意思呢?
在PHP中,如果我們想在命令行shell里或是在程序語(yǔ)言定義字符串,我們有一個(gè)特定的格式,就是.以<<<EOF
開(kāi)始標(biāo)記開(kāi)始,以EOF
結(jié)束標(biāo)記結(jié)束。
我們了解了heredoc,那我們?nèi)タ纯词褂胔eredoc的方法吧。
1. 必須在EOF結(jié)束標(biāo)記后接分號(hào),否則編譯通不過(guò)。
2. 只要保證結(jié)束標(biāo)識(shí)與開(kāi)始標(biāo)識(shí)一致,開(kāi)始標(biāo)記和結(jié)束標(biāo)記可以用任意其它字符代替。
3. 結(jié)束標(biāo)記必須占據(jù)頂部網(wǎng)格中的一行(它必須從行首開(kāi)始,后面不能有任何空格和字符)。
4.開(kāi)始標(biāo)識(shí)符可以沒(méi)有引號(hào),也可以有單引號(hào)和雙引號(hào)。不帶引號(hào)的效果與帶雙引號(hào)的效果相同。解釋嵌入變量和轉(zhuǎn)義符號(hào)。對(duì)于單引號(hào),嵌入變量和轉(zhuǎn)義符號(hào)不會(huì)被解釋。
5.當(dāng)內(nèi)容需要嵌入引號(hào)(單引號(hào)或雙引號(hào))時(shí),不需要添加轉(zhuǎn)義符。內(nèi)容本身避開(kāi)了單引號(hào)和雙引號(hào),這等同于Q和QQ的用法。
知道了那么多使用heredoc的方法之后,我們?nèi)タ纯醋⒁馐马?xiàng)吧,避免我們寫(xiě)出來(lái)的代碼無(wú)法使用啊,或是出現(xiàn)其他的問(wèn)題。
1.以<<<EOF開(kāi)始標(biāo)簽開(kāi)始,以EOF結(jié)束標(biāo)簽結(jié)束。結(jié)束標(biāo)記必須寫(xiě)在開(kāi)頭,沒(méi)有縮進(jìn)和空格,并且結(jié)束標(biāo)記的結(jié)尾必須有分號(hào)。
2.開(kāi)始標(biāo)記與結(jié)束標(biāo)記相同,例如大寫(xiě)的EOT、EOD和EOF,但不限于那些(JSON、HTML等),只要開(kāi)始標(biāo)記和結(jié)束標(biāo)記不出現(xiàn)在正文中。
3.開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽之間的變量可以正常解析,但函數(shù)不能。在heredoc中,變量不需要用連接符.
或,
來(lái)將它們連接到一起,就想我們上面例子里的“"abc"$name
”一樣。
就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程