写在前面
PHP定界符一般用于保持输出内容的格式,比如HTML代码的缩进、换行这些。
比如输出
的嵌套,如果要保持缩进和换行,使用echo你要可能要写成这样:
echo "
echo "\t
content
\n";echo "
上面的方式不够直观。而使用定界符,你可以写成这样:
echo <<
content
EOT;
?>
heredoc语法结构
上面的定界符例子是heredoc语法结构。上面省略了双引号,完整的语法结构应当是:
echo/print <<
........
[标识符];
在标识符中间,我们可以使用保留格式的输出内容,并且还可以在中间插入变量。
变量也可以用{}符号包裹,这样看起来更清晰一点。
$p1 = "c_1";
$p2 = "c_2";
echo <<
$p1
{$p2}
EOT;
?>
nowdoc语法结构
PHP5.3版本开始加入这个结构,对标识符使用单引号,语法结构如下:
echo/print <<
........
[标识符];
和heredoc语法结构的不同在于,输出内容中,无法解析变量。
可以等同理解为,PHP中,双引号包裹的字符串中可以解析变量,而单引号包裹的字符串中无法解析变量的那套机制。
语法要点
无论是heredoc或nowdoc语法结构,都要遵守下面几个规则:
(1)php的标识符必须要有结束符,即?>,否则该PHP文件无法使用定界符
(2)定界符以<<
(3)结束时,[标识符];前面不能有任何空格、缩进或输出
其他要说的
1.
在PHPWIND或者其他地方,我们经常在模板看到下面这种写法
...................