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