PHP最近的6个版本有哪些功能改变
本文来源于PHP官方文档,这里并不会展开,送给有心的小伙伴做研究清单。
PHP 5.3
https://secure.php.net/manual…
-
添加了命名空间的支持.
-
添加了静态晚绑定支持.
-
添加了跳标签支持.
-
添加了原生的闭包(Lambda/匿名函数)支持.
-
新增了两个魔术方法, __callStatic 和 __invoke.
-
添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号.
-
使用 Heredoc 来初始化静态变量和类属性/常量变为可能.
-
可使用双引号声明 Heredoc, 补充了 Nowdoc 语法.
-
可在类外部使用 const 关键词声明 常量.
-
三元运算操作符有了简写形式: ?:.
-
HTTP 流包裹器将从 200 到 399 全部的状态码都视为成功。
-
动态访问静态方法变为可能.
-
异常可以被内嵌.
-
新增了循环引用的垃圾回收器并且默认是开启的.
-
mail() 现在支持邮件发送日志. (注意: 仅支持通过该函数发送的邮件.)
PHP 5.4
https://secure.php.net/manual…
-
新增支持 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 。
PHP5.5
https://secure.php.net/manual…
-
新增 Generators
-
新增 finally 关键字
-
foreach 现在支持 list()
-
empty() 支持任意表达式
-
array and string literal dereferencing ¶
-
新的密码哈希 API
-
改进 GD
PHP5.6
https://secure.php.net/manual…
-
使用表达式定义常量
-
使用 … 运算符定义变长参数函数
-
使用 … 运算符进行参数展开
-
使用 ** 进行幂运算
-
use function 以及 use const
-
phpdbg
-
默认字符编码
-
php://input 是可重用的了
-
大文件上传(现在可以支持大于 2GB 的文件上传)
-
GMP 支持运算符重载
-
使用 hash_equals() 比较字符串避免时序攻击
-
__debugInfo()
-
gost-crypto 散列算法
-
SSL/TLS 提升
-
pgsql 异步支持
PHP7.0
https://secure.php.net/manual…
-
标量类型声明
-
返回值类型声明
-
null合并运算符
-
太空船操作符(组合比较符)
-
通过 define() 定义常量数组
-
匿名类
-
Unicode codepoint 转译语法
-
Closure::call()
-
为unserialize()提供过滤
-
IntlChar
-
预期
-
Group use declarations
-
生成器可以返回表达式
-
Generator delegation
-
整数除法函数 intdiv()
-
会话选项
-
preg_replace_callback_array()
-
CSPRNG Functions
-
可以使用 list() 函数来展开实现了 ArrayAccess 接口的对象
-
其他特性
PHP7.1
https://secure.php.net/manual…
-
可为空(Nullable)类型
-
Void 函数
-
Symmetric array destructuring
-
类常量可见性
-
iterable 伪类
-
多异常捕获处理
-
list()现在支持键名
-
支持为负的字符串偏移量
-
ext/openssl 支持 AEAD
-
通过 Closure::fromCallable() 将callables转为闭包
-
异步信号处理
-
HTTP/2 server push support in ext/curl