• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    400-123-4567

    电子邮件

    1691000615@qq.com
  • 星点互联APP

    随时掌握企业动态

  • 扫描二维码

    关注星点微信公众号

Lv.4 学员组
5号会员,31活跃度,2019/01/10 加入学习
  • 10发帖
  • 10主题
  • 0关注
  • 0粉丝
非常流弊,不废话。。。。。
优秀讲师更多
课堂交流更多
开启左侧

[新课预告] 一文看懂 PHP 7.3 更新

[复制链接]
DeJay王健 发表于 2019-1-11 12:12:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
PHP 目前依旧是其它脚本语言强劲的竞争对手,这主要归功于其核心维护团队的快速更新。


自从PHP 7.0 发布以来,社区见证了许多新特性的诞生,极大地改进了开发者在项目中应用 PHP 的方式。提高 PHP 应用的性能和安全性,是这些改进的主要目的。

PHP 最近实现了又一个里程碑 —— 发布 PHP 7.3。新版本带来了一些急需的更新。

在本文中,我将论述新推出的 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 语法

Heredoc Nowdoc 语法能够在使用多行长字符串时起到很大帮助。它要求结束标识符应当为出现在新行的首个字符串。

  1. // 除了这样:

  2. $query = <<<SQL

  3. SELECT *

  4. FROM `table`

  5. WHERE `column` = true;

  6. SQL;

  7. // 这样也可以:

  8. $query = <<<SQL

  9.    SELECT *

  10.    FROM `table`

  11.    WHERE `column` = true;

  12.    SQL;
复制代码



总的来说,此更新提出了两项改进,如下:

  • 闭合标识符前支持缩进
  • 闭合标识符后不再强制换行
在上面的例子里,可以很容易地看出这些改动。
函数调用中允许尾部逗号

在参数、元素、变量列表结尾,追加尾部逗号。有时我们在数组内以及函数调用(尤其是可变参函数)时需要传递大量元素,若是漏掉一个逗号,便会报错。鉴于如上情况,尾部逗号便显得十分有用。这个特性已经允许在数组内使用,并且从 PHP 7.2 开始,分组命名空间(Grouped Namespaces)语法也开始支持尾部逗号。

  1. use Foo\Bar\{
  2.    Foo,
  3.    Bar,
  4. };

  5. $foo = [
  6.    'foo',
  7.    'bar',
  8. ];
复制代码


当新值需要被追加在此处时,尾部逗号便显得十分实用。在可变参函数例如 unset() 内,更是如此。

  1. unset(
  2.    $foo,
  3.    $bar,
  4.    $baz,
  5. );
复制代码


同时,当你使用 compact() 函数给模版引擎传递一批变量时,也是个能用到的例子。

  1. echo $twig->render(
  2.    'index.html',
  3.    compact(
  4.        'title',
  5.        'body',
  6.        'comments',
  7.    )
  8. );
复制代码


在某些需要构造连续或分组数据情况下,经常要使用 array_merge() 函数合并数组。也可以利用尾部逗号:

  1. $newArray = array_merge(
  2.    $arrayOne,
  3.    $arrayTwo,
  4.    ['foo', 'bar'],
  5. );
复制代码


同样,你也可以在调用任意方法、函数以及闭包时使用此特性。

  1. class Foo
  2. {
  3. public function __construct(...$args) {
  4.    //
  5. }

  6. public function bar(...$args) {
  7.    //
  8. }

  9. public function __invoke(...$args) {
  10.    //
  11. }
  12. }

  13. $foo = new Foo(
  14. 'constructor',
  15. 'bar',
  16. );

  17. $foo->bar(
  18. 'method',
  19. 'bar',
  20. );

  21. $foo(
  22. 'invoke',
  23. 'bar',
  24. );
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz!X3.5 ©2001-2013 Comsenz Inc.星点互联设计( 鲁ICP(125234543) )