php 开发特点PHP8.0新特性1.联合类型2.匹配php开发工程师
2022-09-12
"
本文主要内容是解读PHP的主要新特性8.0
"
PHP8 新特性
1. 联合类型
2. 匹配表达式
3. 空安全运算符
4. 构造函数属性提升
5. 注释
6. 命名参数
前言
PHP8 于 2020 年 11 月 26 日正式发布,又一个里程碑已经到来。
根据官网信息,已经发布到8.0.2版本php 开发特点,但是很多项目还在5.6版本,老的不会去新的,是时候升级了。!
接下来卡卡会分析PHP8.0的新特性。
一、小皮肤面板下载PHP8
由于您想学习新功能,因此您必须先下载它们。
卡卡一直使用本地环境,目前PHP版本只支持7.4,。
打开PHP官网地址,选择下载。
下载方式
然后点击圈出的下载
PHP源代码下载
下载的源码可以直接放在面板的这个目录下
然后给文件夹起个名字,卡卡是按照目录结构写的
PHP目录结构
然后跳转到面板的PHP环境,设置为PHP8环境。
设置 PHP 环境
访问它!
PHP8.0 环境配置
二、部分下载PHP8会出现502解决
如果你已经下载了PHP8,按照卡卡流程,但是访问时返回502。
那不用担心,这只是一个小问题,如果你发现 PHP 无法成功运行。
使用cmd进入PHP8目录,执行该命令。如果出现以下情况seo优化,说明卡卡可以解决这个问题。如果没有,百度将单独使用!
我收到以下错误,因为 .dll 与 PHP 版本不兼容
解决这个问题也很简单。卡卡已经下载了软件,点击直接下载。
下载后直接打开安装,然后重启电脑,一切正常。
如果不使用卡卡提供的安装包,也可以直接访问官网下载。
进入官网后,拉到最下面还有其他工具和框架,点击卡卡选择的下载。
下载软件
三、功能介绍
在版本的更新迭代中会有新的特性出现,一些旧的特性也会被丢弃。
接下来说说PHP8.0带来了哪些新特性!
1. 联合类型
关于类型的特性seo优化,其实PHP7中实现的,只不过是注解的形式。
现在来看看两者的区别。下图来自PHP官网。
此图来自PHP官网
PHP8中设置参数类型后,如果传入类型与预设类型不匹配,直接报错
PHP8 联合类型
错误信息
但是 PHP7 不同。虽然类型是预设好的,但也可以通过传入对应的类型来执行。
PHP7执行结果
该功能可用于限制参数类型,更好地过滤参数。
2. 匹配表达式
该函数类似于 PHP7 语句。
1. 匹配单个值
相比隐藏
2. 匹配多个条件
3. 默认
具有相同的属性
4. 不设置默认值会报错
如果不设置会报错
5. 强制类型匹配
默认强制类型匹配,下面代码匹配的是int的值,但是搜索的值是 3,所以直接去
3. 空安全运算符
此功能将非常有效地解决代码冗余问题。
PHP7中,有时会出现类属性的多条件判断,如下代码
上面的代码返回结果为
但是在PHP8中,这个代码冗余问题得到了完美解决
PHP8 代码
代码
返回相同的结果
可以看出php 开发特点,PHP7 用 PHP8 中的一行代码就可以实现。很好吗?
4. 构造函数属性提升
PHP7 构造函数代码
PHP8 构造函数代码
5. 注释
新加入的注解功能,写完这些功能,卡卡只觉得这个用处不大,估计是个很好的理由。
但是为了文章的完整性,还是写出来给大家看看。
直接上代码,PHP7获取代码的注释用下面的代码获取。
上面的代码中使用了几个字符串操作。假设注释不规范,出错的概率不小于你在代码中写的分号数量。
既然有这样的问题,官方就为我们解决了这个问题。让我们看看它是如何用 PHP8 编写的。
关于类的注释这里没有提到。有兴趣的可以去官网查看相关信息。
6. 命名参数
关于 PHP8 命名参数的最后一点说明
PHP7中使用了位置参数,比如下面的代码
也就是说,你传入的参数对应的是方法接收到的内容。
那么PHP8中的一个新特性就是命名参数,如下代码
与上面代码不同的是,每个参数在传递方法的时候都给了一个名字,但是这个名字只能是不带$的参数。
这个新特性在代码可维护性方面没有任何优势,我们也不知道为什么要设计它!
但是在参数部分还有一个值得称道的特性,就是可变参数,类似于 Go 的
但是这里必须要注意的一点是,如果使用可变参数,传递参数时不能使用位置参数,而是必须使用所有命名参数。
四、总结