| PHP 目前依旧是其它脚本语言强劲的竞争对手,这主要归功于其核心维护团队的快速更新。 
 
 自从PHP 7.0 发布以来,社区见证了许多新特性的诞生,极大地改进了开发者在项目中应用 PHP 的方式。提高 PHP 应用的性能和安全性,是这些改进的主要目的。 
 
 在本文中,我将论述新推出的 PHP 7.3 特性 和更新。好消息是,你可以在你的测试服务器上自行安装新版本、查看新功能。但老生常谈,切勿在生产服务器上使用 RC 版本更新,可能会破坏你已经上线的应用。 
 以下是7.3版中引入的一些更新,与以前的版本相比,它们大大提高了 PHP7.3 的性能 。 
 灵活的 Heredoc 和 Nowdoc 语法
函数调用时允许尾随逗号
JSON_THROW_ON_ERROR
PCRE2 迁移
list() 分配参考
is_countable 函数
array_key_first(), array_key_last()
Argon2 密码哈希增强功能
弃用和删除 image2wbmp()
弃用和删除不区分大小写的常量
相同站点 Cookie
FPM 更新
改进 Windows 下的文件删除
 让我们逐一讨论上述的每一个更新。 灵活的 Heredoc 和Nowdoc 语法 
 
 复制代码// 除了这样:
$query = <<<SQL
SELECT *
FROM `table`
WHERE `column` = true;
SQL;
// 这样也可以:
$query = <<<SQL
   SELECT *
   FROM `table`
   WHERE `column` = true;
   SQL;
 
 
 总的来说,此更新提出了两项改进,如下: 在上面的例子里,可以很容易地看出这些改动。 函数调用中允许尾部逗号 
 在参数、元素、变量列表结尾,追加尾部逗号。有时我们在数组内以及函数调用(尤其是可变参函数)时需要传递大量元素,若是漏掉一个逗号,便会报错。鉴于如上情况,尾部逗号便显得十分有用。这个特性已经允许在数组内使用,并且从 PHP 7.2 开始,分组命名空间(Grouped Namespaces)语法也开始支持尾部逗号。 
 复制代码use Foo\Bar\{
   Foo,
   Bar,
};
$foo = [
   'foo',
   'bar',
];
 当新值需要被追加在此处时,尾部逗号便显得十分实用。在可变参函数例如 unset() 内,更是如此。 
 复制代码unset(
   $foo,
   $bar,
   $baz,
);
 同时,当你使用 compact() 函数给模版引擎传递一批变量时,也是个能用到的例子。 
 复制代码echo $twig->render(
   'index.html',
   compact(
       'title',
       'body',
       'comments',
   )
);
 在某些需要构造连续或分组数据情况下,经常要使用 array_merge() 函数合并数组。也可以利用尾部逗号: 
 复制代码$newArray = array_merge(
   $arrayOne,
   $arrayTwo,
   ['foo', 'bar'],
);
 同样,你也可以在调用任意方法、函数以及闭包时使用此特性。 
 复制代码class Foo
{
 public function __construct(...$args) {
   //
 }
 public function bar(...$args) {
   //
 }
 public function __invoke(...$args) {
   //
 }
}
$foo = new Foo(
 'constructor',
 'bar',
);
$foo->bar(
 'method',
 'bar',
);
$foo(
 'invoke',
 'bar',
);
 
 
 |