abei1982 2017-08-14 18:53:09 2472次浏览 0条回复 1 1 0

从5.3到现在的7.1,PHP经历了几个里程碑式的版本更新,本文为你展示这些版本到底有何变化。

本文来源于PHP官方文档,这里并不会展开,送给有心的小伙伴做研究清单。

PHP 5.3

https://secure.php.net/manual/zh/migration53.new-features.php

  • 添加了命名空间的支持.
  • 添加了静态晚绑定支持.
  • 添加了跳标签支持.
  • 添加了原生的闭包(Lambda/匿名函数)支持.
  • 新增了两个魔术方法, callStatic 和 invoke.
  • 添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号.
  • 使用 Heredoc 来初始化静态变量和类属性/常量变为可能.
  • 可使用双引号声明 Heredoc, 补充了 Nowdoc 语法.
  • 可在类外部使用 const 关键词声明 常量.
  • 三元运算操作符有了简写形式: ?:.
  • HTTP 流包裹器将从 200 到 399 全部的状态码都视为成功。
  • 动态访问静态方法变为可能.
  • 异常可以被内嵌.
  • 新增了循环引用的垃圾回收器并且默认是开启的.
  • mail() 现在支持邮件发送日志. (注意: 仅支持通过该函数发送的邮件.)

PHP 5.4

https://secure.php.net/manual/zh/migration54.new-features.php

  • 新增支持 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/zh/migration55.new-features.php

  • 新增 Generators
  • 新增 finally 关键字
  • foreach 现在支持 list()
  • empty() 支持任意表达式
  • array and string literal dereferencing ¶
  • 新的密码哈希 API
  • 改进 GD

PHP5.6

https://secure.php.net/manual/zh/migration56.new-features.php

  • 使用表达式定义常量
  • 使用 ... 运算符定义变长参数函数
  • 使用 ... 运算符进行参数展开
  • 使用 ** 进行幂运算
  • use function 以及 use const
  • phpdbg
  • 默认字符编码
  • php://input 是可重用的了
  • 大文件上传(现在可以支持大于 2GB 的文件上传)
  • GMP 支持运算符重载
  • 使用 hash_equals() 比较字符串避免时序攻击
  • __debugInfo()
  • gost-crypto 散列算法
  • SSL/TLS 提升
  • pgsql 异步支持

PHP7.0

https://secure.php.net/manual/zh/migration70.new-features.php

  • 标量类型声明
  • 返回值类型声明
  • 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/zh/migration71.new-features.php

  • 可为空(Nullable)类型
  • Void 函数
  • Symmetric array destructuring
  • 类常量可见性
  • iterable 伪类
  • 多异常捕获处理
  • list()现在支持键名
  • 支持为负的字符串偏移量
  • ext/openssl 支持 AEAD
  • 通过 Closure::fromCallable() 将callables转为闭包
  • 异步信号处理
  • HTTP/2 server push support in ext/curl

有多少不会的?干!!!

觉得很赞
    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册