PHP7.4中新特性和废弃特性有分别有哪些
Admin 2022-06-13 群英技术资讯 1367 次浏览
这篇文章将为大家详细讲解有关“PHP7.4中新特性和废弃特性有分别有哪些”的知识,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP7.4 新特性
PHP7.4 上月 28 号已经发布了。又带来了一些新特性。可以让我们的代码写的更少了。
1. 属性添加限定类型
<?php
class User {
public int $age;
public string $name
}
$user = new User();
$user->age = 10;
$user->name = "张三";
//error
$user->age = "zhang";//需要传递int
2. 箭头函数
这个特性基本上参考 Js 的 ES6 的语法。可以让我们的代码写的更少。如果你的代码有 fn 这个函数。可能会冲突
<?php
$factor = 10;
$nums = array_map(fn($n)=>$n * $factor,[1,2,3]);//[10,20,30]
//之前的写法
$nums = array_map(function($num)use($factor){
return $num * $factor;
},[1,2,3])
3. 有限返回类型协变与参数类型逆变
仅当使用自动加载时,才提供完全协变 / 逆变支持。在单个文件中,只能使用非循环类型引用,因为所有类在被引用之前都必须可用。
<?php
class A {}
class B extends A {}
class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
4. 数组解包
使用展开运算符... 解包数组。这个特性,应该又是从 js 那吸收过来的。看例子
<?php $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon'];//['banana', 'orange', 'apple', 'pear', 'watermelon']; //老的写法 $fruits = array_merge(['banana', 'orange'],$parts,['watermelon']);
5. 空合并运算符赋值
<?php
$array['key'] ??= computeDefault();
// 老的写法
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
?>
6. 数值文字分隔符
数字文字可以在数字之间包含下划线。
<?php 6.674_083e-11; // float 299_792_458; // decimal 0xCAFE_F00D; // hexadecimal 0b0101_1111; // binary ?>
7. 允许从 __toString () 抛出异常
现在允许从 __toString() 引发异常,以往这会导致致命错误,字符串转换中现有的可恢复致命错误已转换为 Error 异常。
8. Filter
新增 FILTER_VALIDATE_FLOAT
<?php filter_var(1.00,FILTER_VALIDATE_FLOAT);
filter.filters.validate
9. strip_tags 支持数组
<?php strip_tags($str,['p','a','div']); //老的写法 strip_tags($str,"<p><a><div>");
废弃的特性
1. 没有显式括号的嵌套三元运算符
<?php 1 ? 2 : 3 ? 4 : 5; // deprecated (1 ? 2 : 3) ? 4 : 5; // ok 1 ? 2 : (3 ? 4 : 5); // ok ?>
面试的时候,终于不用担心问你这个结果是啥了。其实生产中,大家也不会这么写。
2. 花括号访问数组索引
<?php
$arr = ["a"=>"111"];
$index = "a";
$arr{$index}//废弃
$arr[$index];
说实话,还是第一次见到,废弃了,说明大家不会这么用。
3. real 和 is_real 实数
<?php $num = ""; $a = (real) $num;//废弃 $a = (float) $num;
4. parent 关键词在没父类的类中使用
在没有父类的类中使用 parent 会出现编译错误。
<?php
class Test{
public function index()
{
return parent::index();//编译错误
}
}
5. money_format 函数
money_format 被废弃,使用 numberFormater 替换
6. 移除的拓展
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
【1】页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$_POST['foo'],$_SESSI...
本文章向大家介绍php7连接Sqlserver的方法,主要包括php7.2连接Sqlserver使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这篇文章主要介绍了PHP架构及原理知识点以及相关实例讲解,需要的朋友们参考下。
在使用PHP的过程中也会遇到错误,那么我们该怎么处理这些错误呢?一起来通过本节的内容进行了解。在PHP中,默认的错误处理很简单。一条错误信息会被发送到浏览器,这条信息带有文件名、行号以及描述错误的信息。
如何用PHP实现检测上传文件大小?下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008