从PHP 5.3.x 移植到 PHP 7.0.x,我们来分别介绍一下从PHP5.6到7.0之间版本迭代增加的一些新的特性:
## PHP 5.3
* 添加了命名空间的支持;
* 添加了静态晚绑定支持
* 添加了跳标签支持;
* 添加了原生的闭包(Lambda/匿名函数)支持;
* 新增了两个魔术方法, __callStatic 和 __invoke;
* 添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号;
* 使用 Heredoc 来初始化静态变量和类属性/常量变为可能;
* 可使用双引号声明 Heredoc, 补充了 Nowdoc 语法;
* 可在类外部使用 const 关键词声明 常量;
* 三元运算操作符有了简写形式: ?;
* HTTP 流包裹器将从 200 到 399 全部的状态码都视为成功;
* 动态访问静态方法变为可能;
* 异常可以被内嵌;
* 新增了循环引用的垃圾回收器并且默认是开启的;
* mail() 现在支持邮件发送日志. (注意: 仅支持通过该函数发送的邮件.);
## PHP 5.4
* 新增支持 traits 。
* 新增短数组语法,比如 $a = [1, 2, 3, 4]; 或 $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; 。
* 新增支持对函数返回数组的成员访问解析,例如 foo()[0] 。
* 现在 闭包 支持 $this 。
* 现在不管是否设置 short_open_tag php.ini 选项,<?= 将总是可用。
* 新增在实例化时访问类成员,例如: (new Foo)->bar() 。
* 现在支持 Class::{expr}() 语法。
* 新增二进制直接量,例如:0b001001101 。
* 改进解析错误信息和不兼容参数的警告。
* SESSION 扩展现在能追踪文件的 上传进度 。
* 内置用于开发的 CLI 模式的 web server 。
## PHP 5.5
* 新增 Generators
* 新增 finally 关键字
* foreach 现在支持 list()
* empty() 支持任意表达式
* array and string literal dereferencing
* 新的密码哈希 API
* 改进 GD
## PHP 5.6
* 使用表达式定义常量
* 使用 ... 运算符定义变长参数函数
* 使用 ... 运算符进行参数展开
* 使用 ** 进行幂运算
* use function 以及 use const
* phpdbg
* 默认字符编码
* php://input 是可重用的了
* 大文件上传(现在可以支持大于 2GB 的文件上传)
* GMP 支持运算符重载
* 使用 hash_equals() 比较字符串避免时序攻击
* __debugInfo()
* gost-crypto 散列算法
* SSL/TLS 提升
* pgsql 异步支持
## PHP 7.0
* 标量类型声明
* 返回值类型声明
* null合并运算符
* 太空船操作符(组合比较符)
* 通过 define() 定义常量数组
* 匿名类
* Unicode codepoint 转译语法
* Closure::call()
* 为unserialize()提供过滤
* IntlChar
* 预期
* Group use declarations
* 生成器可以返回表达式
* Generator delegation
* 整数除法函数 intp()
* 会话选项
* preg_replace_callback_array()
* CSPRNG Functions
* 可以使用 list() 函数来展开实现了 ArrayAccess 接口的对象
* 其他特性
## PHP 7.1
* 可为空(Nullable)类型
* Void 函数
* Symmetric array destructuring
* 类常量可见性
* iterable 伪类
* 多异常捕获处理
* list()现在支持键名
* 支持为负的字符串偏移量
* ext/openssl 支持 AEAD
* 通过 Closure::fromCallable() 将callables转为闭包
* 异步信号处理
* HTTP/2 server push support in ext/curl
> 更新内容请关注 PHP达人网................