PHP7新增功能
一、核心
- 增加了group use语法声明。RFC: Https://wiki.php.net/rfc/group_use_declarations
- 增加了null合并运算符??。RFC: https://wiki.php.net/rfc/isset_ternary
- 64位PHP7字符串长度可以超过2^31次方字节。
- 增加了Closure::call()方法。
- 双引号字符串和heredocs里面支持使用\u{xxxxx}来声明unicode字符。
- define()可以把一个数组定义为常量。
- 增加了合并比较运算符<=>。RFC: https://wiki.php.net/rfc/combined-comparison-operator
- 增加了yield from 操作符。https://wiki.php.net/rfc/generator-delegation
- 关键词在特定的场景中也可以使用了。RFC: https://wiki.php.net/rfc/context_sensitive_lexer
- 增加了标量类型声明功能。RFC: https://wiki.php.net/rfc/scalar_type_hints_v5
增加接口为用户层提供安全方便的随机数生成器。RFC: https://wiki.php.net/rfc/easy_userland_csprng
二、Opcache模块
- 增加了基于文件的二级opcode 缓存机制。可以在php.ini文件中设置opcache.file_cache=<DIR>。当服务重启或者SHM重置的时候,使用二级文件缓存机制可以提高性能。
- 也可以设置opcache.file_cache_only=1来限定只使用文件缓存。
- 可以设置opcache.file_cache_consistency_checks=0参数来加快加载速度。
- 可以设置opcache.huge_code_pages=0/1来决定是否将PHP code pages放到huage pages里面。http://www.laruence.com/2015/10/02/3069.HTML
- windows版本增加了opcache.file_cache_fallback=1 配置项。
三、OpenSSL模块
增加了"alpn_protocols”选项。四、反射
- 增加了ReflectionGenerator类,用于yield from Traces, current file/line等等。
- 增加了ReflectionType类,更好的支持新的返回值和标量声明功能。
五、流
windows版本增加了块读取的选项。可以通过传递array("pipe" => array("blocking" => true))参数来激活。