PHP中heredoc和nowdoc的用法

寵の児 提交于 2020-03-01 03:07:27

我先定义一个三行三列的表格:

$table="<table border='1' width=\"80%\">//使用转义符
<tr>
   <td>编号</td>
   <td>用户名</td>
   <td>描述</td>
</tr>
<tr>
    <td>1</td>
    <td>tang</td>
    <td>she said \"I'm  a girl\"</td>//因为在php文文件中,出现了单双引号冲突,所以这里用了转义符。
</tr>

</table>";
echo $table;

输出结果: 输入图片说明

我们发现当在php文件中同时使用单引号和双引号就会出现冲突我们要用到转义符。

  • heredoc语法结构

<<<标识名称 内容 标识名称;

注意:

  1. 标识名只能包含字母、数字、下划线,并且必须字母和下划线开始
  2. 结束符前不能有任何内容,像制表符和空格都不可以
  3. PHP5.3之后可以将标识符用双引号括起来,其他和双引号作用一样
$table=<<<EOF
<table border='1' width=80%>
<tr>
     <td>编号</td>
     <td>用户名</td>
     <td>描述</td>
</tr>
<tr>
    <td>1</td>
    <td>tang</td>
    <td>she said "I'm  a girl"</td>
</tr>
</table>
EOF;
echo $table;

输出结果: 输入图片说明

用了heredoc语法结构实现了同样的效果,但是我们并没有用转义符。 所以heredoc就相当于双引号的作用,也具有解析变量的能力。

  • nowdoc语法结构

<<<'标识名称' 内容 标识名称;

注意:

  • nowdoc和单引号作用一样,不解析变量和转义符,标识名称需要放在单引号中
$username='tang';
$str=<<<'EOD'
hello king<br/>
{$username}
EOD;
echo $str

输出结果:

输入图片说明

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!