19新版教育培训风格演示站
标题: 一文看懂 PHP 7.3 更新 [打印本页]
作者: DeJay王健    时间: 2019-1-11 12:12
标题: 一文看懂 PHP 7.3 更新
PHP 目前依旧是其它脚本语言强劲的竞争对手,这主要归功于其核心维护团队的快速更新。
[attach]48[/attach]
自从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',
 
- );
| 欢迎光临 19新版教育培训风格演示站 (http://47.100.112.22/demo/train/) | Powered by Discuz! X3.5 |