源码地址:https://github.com/wilfordw/phpTutorial
Heredoc和Nowdoc用于在php代码中嵌入大段字符,同时特殊字符不需要转义
语法:
Heredoc:
//标示可以是自定义字符,前后字符一致,且不能在文章中出现 Heredoc中可以嵌入变量
<<<标示
文章
标示;
Nowdoc;
//标示可以是自定义字符,前后字符一致,且不能在文章中出现 Nowdoc中不能嵌入变量
<<<'标示'
文章
标示;
Example
<?php
$name = "MyName";
//Heredoc 语法<<<标记...标记,可以插入变量 标记后不能有空格
echo <<<TEST1
My name is "{$name}"
TEST1;
//My name is "MyName"
//作为方法参数
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 语法<<<'标记'...标记,可以插入变量 标记后不能有空格
echo <<< 'TEST2'
My name is "{$name}".
TEST2;
//My name is "{$name}".
?>
总结一些容易出错的问题:
- <<<开始标记 后面不能有空格
- 结束标记必须定格,以分号结束
- php代码必须有?>结尾,对于纯php代码,没有文本输出的php代码官方建议不要用?>结尾php代码,但这里必须要,要不会报错