php7 & php8 知识点大略
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php7 & php8 知识点大略相关的知识,希望对你有一定的参考价值。
参考技术A php7 速度快的原因zval定义改变
之前char int用的结构体,现在统一用联合体定义。扩充字段也是联合体
zval能保存的数据不再引用,比如bool、int,直接赋值,不需要引用计数了
hashtable结构修改
zend_array,Bucket结构更简单,内存占用更少。去掉了为了解决hash冲突,的2个双向链表。直接用连续的数组。
zend_string结构修改 从两个结构体,换成了一个结构体。存储数据使用柔性数组代替了指针。
函数服用机制
内置函数
php7新特性
增加类型声明
??双问号合并运算
<=> 船运算符 返回 -1 0 11
常量数组
define('sites', [
'Google',
'Runoob',
'Taobao'
]);
可以定义匿名类
反序列化过滤unserialize
随机数random_bytes random_int
use 可以批量导入
php8
方法参数可以跳过
可以用#注释
类的初始化属性可以不用定义
类型声明可以多种
代替switch的match表达式
运算符链式调用。不用多个if
0 == 'foobar' 是false
jit
Opcache直接生成机器码提高性能。
Opcache会做opcode层面的优化,比如图中的俩条opcode合并为一条
PHP8的JIT目前是在Opcache之中提供的
JIT在Opcache优化之后的基础上,结合Runtime的信息再次优化,直接生成机器码
JIT不是原来Opcache优化的替代,是增强
目前PHP8只支持x86架构的CPU
以上是关于php7 & php8 知识点大略的主要内容,如果未能解决你的问题,请参考以下文章
linux 安装多个PHP版本(php5.6 php7.1 php7.2 php7.3 php7.4 php8.0)nginx配置php多版本