多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP7.3新功能heredoc 和 nowdoc句法结构

时间:2018-07-18 21:00:59 [来源]:郑州PHP培训学校

 Heredoc 和 Nowdoc 有非常严格的语法,有些时候这令很多开发者避而远之,因为他们在代码中看起来非常丑陋,令代码的可读性降低。本次的更新针对此问题,对语法做出了以下两个更改:

 
支持闭合标记符的缩进;
不再强制闭合标记符的换行;
从 PHP 7.2 的当前实现来看, 就像这个简单的例子:
 
<?php
class foo {
    public $bar = <<<EOT
bar
EOT;
}
在 7.3 版本中,以下形式是可用的:
 
<?php
class foo {
    public $bar = <<<EOT
    bar
    EOT;
}
闭合标记的缩进决定了 heredoc/nowdoc 中每个新行的空格的数量:
 
<?php
 
// 4 个缩进空格
echo <<<END
      a
     b
    c
    END;
/*
  a
 b
c
*/
在 PHP 7.2 的当前实现中, 必须存在一个新行来结束 heredoc/nowdoc。 PHP 7.3 移除了这个约束:
 
<?php
 
stringManipulator(<<<END
   a
  b
 c
END);
 
$values = [<<<END
a
b
c
END, 'd e f'];
Heredoc 和 Nowdoc 的背景
Nowdoc 从 PHP 5.3.0 版本开始支持,他和 Heredoc 的不同之处,仅是双引号和单引号的差别。 Nowdoc 在开始标记周围添加了单引号,则没有解析:
 
<?php
 
$name = 'Example';
$str = <<<'EOD'
Example of string $name
spanning multiple lines
using nowdoc syntax.
EOD;
上面的 nowdoc 会输出:
 
Example of string $name
spanning multiple lines
using nowdoc syntax.
Here 文档 在 wiki 上的定义:
 
在计算机学科中,here文档,又称作 heredoc、hereis、here-字串或here-脚本,是一个文件输入或者数据流输入:可以被当成完整文件的块状代码。它可以保存文字里面的换行或是缩排等空白字元。一些语言允许在字串里执行变量替换和命令替换。
 
Heredocs 和 Nowdocs 的改进将会让你的 PHP 代码更加具有可读性,错误率也会降低。另一方面,因为会闭合标记符的缩进会被移除,所以输出会更加简洁直接。

上一篇:25个顶级PHP模板引擎整理

下一篇:PHP升级到7.2需要注意的问题