最新公告
  • 欢迎您光临找主题吧,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • WordPress开发人员要了解的 PHP 7.4 新特性

    PHP 7.4 计划于2019年11月28日发布。WordPress 5.3也将包含一些针对已弃用功能的提交

    WordPress开发人员要了解的 PHP 7.4 新特性

    大多数WordPress插件和主题开发人员不太可能在一段时间内使用新的PHP 7.4功能,除非对环境可以进行一定程度控制的设置上进行工作。由于WordPress不愿意将最低PHP版本提高到最新的受支持版本,因此使用新功能可能需要几年的时间。但是,开发人员应确保其插件和主题与PHP 7.4兼容。跟上当前功能也是一种很好的做法。

    WordPress 5.2 将最低要求提高到PHP 5.6,并推荐使用 PHP 7.3。以下是WordPress安装的当前PHP使用情况统计信息的情况:

    • PHP 7.3 – 9.6%
    • PHP 7.2 – 22.2%
    • PHP 7.1 – 13.5%
    • PHP 7.0 – 14.9%
    • PHP 5.6 – 25.7%

    当前,PHP 7.2和7.3是唯一获得有效支持的版本。PHP将在12月1日停止对7.1版的安全支持。

    新功能

    PHP 7.4包含许多新功能,这些新功能将使编写代码更加容易。以下是对WordPress插件和主题作者可能有用的一些功能的简要概述。

    类型属性

    PHP在5.0中首次引入了类型提示,并不断改进该功能。PHP 7.0引入了返回类型声明。PHP 7.4使它更上一层楼,并允许开发人员为类属性声明类型。这使开发人员可以确保分配给特定属性的数据类型始终是该数据​​类型。

    在下面的示例中,$id属性只能分配一个整数,而$title属性只能分配一个字符串。如果声明了严格的类型,尝试分配错误的数据类型将导致致命错误。否则,PHP会将值强制转换为正确的类型。

    class Event {
     
        public int $id;
     
        public string $title;
    }

    箭头功能

    许多开发人员一直在呼吁使用类似于JavaScript的箭头功能。它们非常好用。但是,PHP的箭头功能(也称为“短闭包”)略有​​不同。PHP 7.4引入了fn关键字(现在是保留关键字)。短闭包只能包含一个表达式,没有return关键字。它们的功能不如JavaScript下的强大,但是它们确实为某些情况提供了快速的解决方案。

    例如,以下代码片段显示了两种不同的方法,这些方法可以根据一组用户对象构建一组用户电子邮件。

    // 旧方式,但还可用
    $value = array_map( function( $user ) {
        return $user->user_email;
    }, $users );
    
    // 新方式
    $value = array_map( fn( $user ) => $user->user_email, $users );

    在数组内部解包

    参数解包是PHP 5.6引入的,因此对于WordPress领域的许多开发人员来说,这仍然可能是陌生的领域。在我的某些项目中,这是非常宝贵的功能。

    PHP 7.4 允许开发人员在数组中解包数组。这应该比array_merge()散布运算符(...)是一种语言构造而不是一个函数要快得多。

    看下下面的示例,该示例在较大的颜色数组中注入两种颜色的数组。

    $colors_a = [ 'green', 'blue' ];
    
    $colors_b = [ 'red', ...$colors_a, 'yellow', 'purple' ];
    
    // [ 'red', 'green', 'blue', 'yellow', 'purple' ];

    空合并分配运算符

    空合并赋值运算符是将isset()检查与三元运算符组合在一起的简便方法。

    以下示例显示了如何检查$product['id']变量。如果已设置,则什么也不做。否则,在右侧分配它的值。您可以看到PHP版本之间代码的演变。用7.4编写要简单得多。

    // Pre-PHP 7.0.
    $product['id'] = isset( $product['id'] ) ? $product['id'] : 0;
    
    // PHP 7.0.
    $product['id'] = $product['id'] ?? 0;
    
    // PHP 7.4.
    $product['id'] ??= 0;

    不推荐使用的功能

    PHP 7.4将弃用某些功能。插件和主题作者可以查阅完整列表,以确定是否应更新任何过时的代码。我挑选了过去几年在插件和主题代码中看到的一些项目。在当前代码库中,大多数其他不推荐使用的功能不太可能。

    没有括号的嵌套三元运算符

    嵌套三元运算符通常是开发人员应避免的东西。说真的,只是不要写它们。它们很难遵循,并且由于人为错误而易于出错。但是,如果您要谨慎行事并放弃好的建议,请至少使用括号。PHP 7.4不建议使用不带括号的嵌套三元组。

    // 不好!已弃用
    $value = $a ? $b : $c ? $d : $e;
    
    // 好
    $value = ( $a ? $b : $c ) ? $d : $e;
    
    // 好
    $value = $a ? $b : ( $c ? $d : $e );

    在对象上使用 array_key_exists()

    开发人员不应在对象上使用array_key_exists(),因为对象不是数组。而是使用更合适的property_exists()函数或isset()

    // 不好,已弃用
    if ( array_key_exists( $property, $object ) ) {}
    
    // 好
    if ( property_exists( $object, $property ) ) {}
    
    // 好
    if ( isset( $object->$property ) ) {}

    带有花括号的数组和字符串偏移量访问

    使用花括号进行数组和字符串偏移量访问有点稀少,但是我已经看到了几次。确保您使用的方括号[],而不是的大括号{}

    // 不好,已弃用
    $value = $a{ $key };
    
    // 好
    $value = $a[ $key ];
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!331752841@qq.com
    2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
    8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    9. 如遇到加密压缩包,默认解压密码为"www.lovecger.com",如遇到无法解压的请联系管理员!
    找主题吧 » WordPress开发人员要了解的 PHP 7.4 新特性

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者