浅谈php7的重大新特性_PHP 7.4.0刚刚发布!一起看看有哪些新特性

7389312f164dd198c578b290b9b8ab5f.png

php中文网最新课程

每日17点准时技术干货分享

14b216648e14bac0aa8e0afbe5c64e8a.png

3431d5c3c32a44e1f923a60755dbc33f.gif

PHP 7.4.0 发布了,此版本标志着 PHP 7 系列的第四次特性更新。 PHP 7.4.0 进行了许多改进,并带来了一些新特性,包括: 1.Typed Properties   类型属性 类属性现在支持类型声明,以下示例将强制 $User-> id 只能分配 int 值,而 $User-> name 只能分配 string 值。
<?php class User {    public int $id;    public string $name;}?>

2.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);

3.Limited Return Type Covariance and Argument Type Contravariance 有限返回类型协变与参数类型逆变

仅当使用自动加载时,才提供完全协变/逆变支持。在单个文件中,只能使用非循环类型引用,因为所有类在被引用之前都必须可用。

<?php class A {}class B extends A {}class Producer {    public function method(): A {}}class ChildProducer extends Producer {    public function method(): B {}}?>
4.Unpacking Inside Arrays   打包内部数组
<?php $parts = ['apple', 'pear'];$fruits = ['banana', 'orange', ...$parts, 'watermelon'];// ['banana', 'orange', 'apple', 'pear', 'watermelon'];?>

5.Numeric Literal Separator  

数值文字分隔符

数字文字可以在数字之间包含下划线。

<?php 6.674_083e-11; // float299_792_458;   // decimal0xCAFE_F00D;   // hexadecimal0b0101_1111;   // binary?>

6.Weak References  

弱引用

弱引用使程序员可以保留对对象的引用,不会阻止对象被销毁。

7.Allow Exceptions from __toString()  

允许从 __toString() 抛出异常

现在允许从 __toString() 引发异常,以往这会导致致命错误,字符串转换中现有的可恢复致命错误已转换为 Error 异常。

8.Opcache Preloading  

Opcache 预加载

新增 Opcache 预加载支持。

此外还有一些弃用,以及从核心中删除一些扩展,详情查看:

https://www.php.net

https://www.php.net/manual/zh/migration74.new-features.php

-END-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值