PHP7.3新特性:将迎来灵活的 heredoc 和 nowdoc语法结构

PHP7.3对Heredoc和Nowdoc语法进行了更新,包括支持闭合标记符的缩进及取消强制换行,提高了代码的可读性和简洁性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
php.net RFC 频道已经公布了 PHP 7.3 的 Heredoc 和 Nowdoc 语法更新,此次更新专注于代码可读性:

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 代码更加具有可读性,错误率也会降低。另一方面,因为会闭合标记符的缩进会被移除,所以输出会更加简洁直接。

获取更多信息

推荐阅读官方的更改文档 —— flexible Heredoc and Nowdoc Syntaxes RFC。 PHP 官方的文档 Heredoc 和 Nowdoc。

本文参考地址:https://www.php.cn/toutiao-406434.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值