转自:开源中国
PHP 7.4.0 发布了,此版本标志着 PHP 7 系列的第四次特性更新。
PHP 7.4.0 进行了许多改进,并带来了一些新特性,包括:
Typed Properties 类型属性
类属性现在支持类型声明,以下示例将强制 $User-> id 只能分配 int 值,而 $User-> name 只能分配 string 值。
<?phpclass User { public int $id; public string $name;}?>
Arrow Functions 箭头函数
箭头函数提供了用于定义具有隐式按值作用域绑定的函数的简写语法。
<?php$factor = 10;$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);// $nums = array(10, 20, 30, 40);?>
将闭包传递给 array_map 或 array_filter 等函数时,它可以发挥极大的作用。
// A collection of Post objects $posts = [/* … */];$ids = array_map(fn($post) => $post->id, $posts);
Limited Return Type Covariance and Argument Type Contravariance 有限返回类型协变与参数类型逆变
仅当使用自动加载时,才提供完全协变/逆变支持。在单个文件中,只能使用非循环类型引用,因为所有类在被引用之前都必须可用。
<?phpclass A {}class B extends A {}class Producer { public function method(): A {}}class ChildProducer extends Producer { public function method(): B {}}?>
Unpacking Inside Arrays 打包内部数组
<?php$parts = ['apple', 'pear'];$fruits = ['banana', 'orange', ...$parts, 'watermelon'];// ['banana', 'orange', 'apple', 'pear', 'watermelon'];?>
Numeric Literal Separator 数值文字分隔符
数字文字可以在数字之间包含下划线。
<?php6.674_083e-11; // float299_792_458; // decimal0xCAFE_F00D; // hexadecimal0b0101_1111; // binary?>
Weak References 弱引用
弱引用使程序员可以保留对对象的引用,不会阻止对象被销毁。
Allow Exceptions from __toString() 允许从 __toString() 抛出异常
现在允许从 __toString() 引发异常,以往这会导致致命错误,字符串转换中现有的可恢复致命错误已转换为 Error 异常。
Opcache Preloading Opcache 预加载
新增 Opcache 预加载支持。
此外还有一些弃用,以及从核心中删除一些扩展,详情查看:
- https://www.php.net
- https://www.php.net/manual/zh/migration74.new-features.php
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!