PHP7.4新特性介绍
PHP 7.4是PHP的最新稳定版本。它于2019年11⽉28⽇发布,是之前的最新版本。它带来了许多新函数,语法添加和修复。在这篇⽂章中,您将到⼀个列表,其中包含所有新增和更改的内容,以帮助您准备升级。让我们从PHP 7.4中的⼀些要点开始:
New features
PHP 7.4带有⼤量新函数。我们将从所有新函数的列表开始,然后查看更改和不推荐使⽤的内容。
不过,在开始之前,请注意:如果您仍在使⽤较低版本的PHP,您还需要阅读PHP 7.3中的。
# Arrow functions
箭头函数也称为"短闭包",它允许较少冗长的单⾏函数。
虽然您之前已经写过:
array_map(function (User $user) {
return $user->id;
}, $users)
您现在可以这样写:
array_map(fn (User $user) => $user->id, $users)
# 类型属性
类变量可以⽤类型提⽰:
class A
{
public string $name;
public ?Foo $foo;
}
# Improved type variance
但简⽽⾔之:您将可以使⽤协变返回类型–
class ParentType {}
class ChildType extends ParentType {}
class A
{
public function covariantReturnTypes(): ParentType
{ /* … */ }
}
class B extends A
{
public function covariantReturnTypes(): ChildType
{ /* … */ }
}
# 空合并分配运算符
接下来是空合并分配运算符,它是空合并操作的简写。⽽不是这样做:
$data['date'] = $data['date'] ?? new DateTime();
你可以这样做:
$data['date'] ??= new DateTime();
# 数组扩展运算符
接下来,现在可以在数组中使⽤散布运算符:
php8兼容php7吗$arrayA = [1, 2, 3];
$arrayB = [4, 5];
$result = [0, ...$arrayA, ...$arrayB, 6 ,7];
// [0, 1, 2, 3, 4, 5, 6, 7]
请注意,这仅适⽤于带有数字键的数组。
# 数值分隔符
PHP 7.4允许使⽤下划线在视觉上分隔数字值。看起来像这样:
$unformattedNumber = 107925284.88;
$formattedNumber = 107_925_284.88;
下划线仅被引擎忽略。
# 三元运算符弃⽤
该RFC为嵌套三元语句添加了弃⽤警告。在PHP 8中,此弃⽤将转换为编译时错误。
1 ?
2 :
3 ?
4 : 5; // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
# 串联优先
如果您要编写这样的内容:
echo "sum: " . $a + $b;
PHP以前会这样解释它:
echo ("sum: " . $a) + $b;
PHP 8将使其如此解释:
echo "sum: " . ($a + $b);
当遇到在 + 或-符号之前的包含。的未括号表达式时,PHP 7.4添加了弃⽤警告。
数组访问警告
# ⽆效的数组访问警告
如果要对⼀个整数使⽤数组访问语法; PHP以前会返回 null 。从PHP 7.4开始,将发出通知。$i = 1;
$i[0]; // Notice
# strip_tags 接受数组
您过去只能剥离多个标签,如下所⽰:
strip_tags($string, '<a><p>')
PHP 7.4还允许使⽤数组:
strip_tags($string, ['a', 'p'])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论