從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達人網................