PHP7新特性 整理制作

1.类型的声明。
3.新增操作符“<=>”
4.新增操作符“??”
5.define() 定义常量数组
7.匿名函数
10.命名空间引用优化
// PHP7以前语法的写法 
use FooLibrary\Bar\Baz\ClassA; 
use FooLibrary\Bar\Baz\ClassB; 
// PHP7新语法写法 
use FooLibrary\Bar\Baz\{ ClassA, ClassB};
13. PHP7 错误处理
 
PHP7 改变了大多数错误的报告方式.不同于PHP5的传统错误报告机制,现在大多数错误被作为Error异常抛出.
 
这种Error异常可以像普通异常一样被try / catch块所捕获. 如果没有匹配的try / catch块,则调用异常处理函数(由 set_exception_handler() 注册)进行处理.
 
如果尚未注册异常处理函数,则按照传统方式处理:被报告为一个致命错误(Fatal Error).
 
Error类并不是从Exception类扩展出来的,所以用catch (Exception $e) { ... } 这样的代码是捕获不到Error的.你可以用 catch (Error $e) { ... } 这样的代码,
 
或者通过注册异常处理函数( set_exception_handler())来捕获Error.
PHP新功能总结
改进的性能 - 将PHPNG代码合并到PHP7中,速度是PHP 5的两倍。
降低内存消耗 - 优化的PHP 7使用较少的资源。
标量类型声明 - 现在可以强制执行参数和返回类型。
一致的64位支持 - 对64位体系结构机器的一致支持。
改进了异常层次 - 异常层次得到了改进
许多致命的错误转换为例外 - 例外范围增加,涵盖许多致命的错误转换为例外。
安全随机数发生器 - 增加新的安全随机数发生器API。
已弃用的SAPI和扩展已删除 - 各种旧的和不受支持的SAPI和扩展从最新版本中删除。
空合并运算符(?) - 添加了新的空合并运算符。
返回和标量类型声明 - 支持所添加的返回类型和参数类型。
匿名类 - 支持匿名添加。
零成本断言 - 支持零成本断言增加。
标量类型声明
在PHP 7中,引入了一个新的特性,即标量类型声明。标量类型声明有两个选项
 
强制 - 强制是默认模式,不需要指定。
严格 - 严格的模式已经明确暗示。
 
2.zend_string存储hash值,array查询不再需要重复计算hash
 
4.zend_parse_parameters改为宏实现,性能提升15%。
 
5.新增加4种opcode,call_user_function(),is_int(),is_string(),is_array(),strlen(),defined() 4个函数变为php opcode指令,速度更快。
 
6.其他更多性能优化,如基础类型 float , int , bool等改成直接进行值拷贝。排序算法改进了,PCER with JIT , execute_data和opline使用全局寄存器,使用gdb4.8的PGO功能
3.hashtable桶内直接存放数据,减少了内存申请次数,顺便也提升了cache命中率和访问速度。因为指针不是连续的是分布在不同的内存页上,如果读取第一个或者第三个桶,它们的数据可能会在两个页上。
https://www.cnblogs.com/songgj/p/10398076.html
【php】php7新特性及其优化原理
闭包( Closure)增加了一个 call 方法;
 
生成器(或者叫迭代器更合适)可以有一个最终返回值(return),也可以通过 yield from 的新语法进入一个另外一个生成器中(生成器委托)。
 
生成器的两个新特性(return 和 yield from)可以组合

猜你喜欢

转载自www.cnblogs.com/stillstep/p/11020572.html