PHP 7.4.0 发布

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 7.4.0 发布相关的知识,希望对你有一定的参考价值。

php 7.4.0 发布了,此版本标志着 PHP 7 系列的第四次特性更新。

PHP 7.4.0 进行了许多改进,并带来了一些新特性,包括:

Typed Properties  类型属性

类属性现在支持类型声明,以下示例将强制 $User-> id 只能分配 int 值,而 $User-> name 只能分配 string 值。

<?php
class 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  有限返回类型协变与参数类型逆变

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

<?php
class 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  数值文字分隔符

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

<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_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



2019 年最受欢迎中国开源软件评选中!

↓↓↓↓↓↓长按投票↓↓↓↓↓↓

推荐阅读





以上是关于PHP 7.4.0 发布的主要内容,如果未能解决你的问题,请参考以下文章

PHP OpenSSL 扩展在安装 TYPO3 CMS 7.4.0 时不起作用

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

超级有用的9个PHP代码片段

PHP必用代码片段

PHP代码-psysh调试代码片段工具

超实用的php代码片段