1.zval(变量)使用栈内存
变量在底层是zval指针,之前php版本通过MAKE_STD_ZVAL动态的从堆内存上分配zval内存,php7使用栈内存分配,从而减少一次内存分配
2.使用zend_string存储hash值,array查询不再需要重复计算hash
之前版本array的key的值每次都要转化成hash值,
php7为字符串单独创建新类型zend_string保存hash值下次直接使用
3.hashtable桶内通过指针直接存储数据,减少内存申请次数
4.函数的形参和返回值可以定义类型(int、string、float、bool)
5.新增比较运算符<=>
语法:$c = $a <=> $b 如果$a > $b, $c 的值为1 如果$a == $b, $c 的值为0 如果$a < $b, $c 的值为-1
6.新增操作符??
如果变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数。 $a = $_GET['A'] ?? 'nobody'
7.define定义常量数组
define('ARR',[1,2])
8.unserialize提供过滤特性,防止非法数据进行代码注入
9.命名空间引用优化
//之前写法 use serverclassA; use serverclassB; //优化写法 use server{classA,classB}
10.list函数修改,不再按相反顺序赋值
参考地址:
https://www.cnblogs.com/songgj/p/10398076.html
https://blog.csdn.net/wuxing26jiayou/article/details/80036963