
源碼地址:https://github.com/wilfordw/phpTutorial
Heredoc和Nowdoc用于在php代碼中嵌入大段字符,同時特殊字符不需要轉(zhuǎn)義
語法:
Heredoc:
//標(biāo)示可以是自定義字符,前后字符一致,且不能在文章中出現(xiàn) Heredoc中可以嵌入變量
<<<標(biāo)示
文章
標(biāo)示;
Nowdoc;
//標(biāo)示可以是自定義字符,前后字符一致,且不能在文章中出現(xiàn) Nowdoc中不能嵌入變量
<<<'標(biāo)示'
文章
標(biāo)示;
Example
<?php
$name = "MyName";
//Heredoc 語法<<<標(biāo)記...標(biāo)記,可以插入變量 標(biāo)記后不能有空格
echo <<<TEST1
My name is "{$name}"
TEST1;
//My name is "MyName"
//作為方法參數(shù)
echo var_dump(<<<EOD
Hello World
EOD
);
//string(11) "Hello World"
//常量變量賦值
class A
{
const xx = <<< EOD
constXX
EOD;
public $oo = <<< EOD
var_oo
EOD;
}
$a = new A;
echo $a::xx;//constXX
echo $a->oo;//var_oo
//Nowdoc 語法<<<'標(biāo)記'...標(biāo)記,可以插入變量 標(biāo)記后不能有空格
echo <<< 'TEST2'
My name is "{$name}".
TEST2;
//My name is "{$name}".
?>
總結(jié)一些容易出錯的問題:
- <<<開始標(biāo)記 后面不能有空格
- 結(jié)束標(biāo)記必須定格,以分號結(jié)束
- php代碼必須有?>結(jié)尾,對于純php代碼,沒有文本輸出的php代碼官方建議不要用?>結(jié)尾php代碼,但這里必須要,要不會報錯