從5.3到如今的7.1,PHP經歷了幾個里程碑式的版本更新,本文爲你展現這些版本到底有何變化。php
本文來源於PHP官方文檔,這裏並不會展開,送給有心的小夥伴作研究清單。web
https://secure.php.net/manual...算法
添加了命名空間的支持.sql
添加了靜態晚綁定支持.數組
添加了跳標籤支持.閉包
添加了原生的閉包(Lambda/匿名函數)支持.curl
新增了兩個魔術方法, __callStatic 和 __invoke.異步
添加了 Nowdoc 語法支持, 相似於 Heredoc 語法, 可是包含單引號.函數
使用 Heredoc 來初始化靜態變量和類屬性/常量變爲可能.this
可以使用雙引號聲明 Heredoc, 補充了 Nowdoc 語法.
可在類外部使用 const 關鍵詞聲明 常量.
三元運算操做符有了簡寫形式: ?:.
HTTP 流包裹器將從 200 到 399 所有的狀態碼都視爲成功。
動態訪問靜態方法變爲可能.
異常能夠被內嵌.
新增了循環引用的垃圾回收器而且默認是開啓的.
mail() 如今支持郵件發送日誌. (注意: 僅支持經過該函數發送的郵件.)
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 。
https://secure.php.net/manual...
新增 Generators
新增 finally 關鍵字
foreach 如今支持 list()
empty() 支持任意表達式
array and string literal dereferencing ¶
新的密碼哈希 API
改進 GD
https://secure.php.net/manual...
使用表達式定義常量
使用 ... 運算符定義變長參數函數
使用 ... 運算符進行參數展開
使用 ** 進行冪運算
use function 以及 use const
phpdbg
默認字符編碼
php://input 是可重用的了
大文件上傳(如今能夠支持大於 2GB 的文件上傳)
GMP 支持運算符重載
使用 hash_equals() 比較字符串避免時序攻擊
__debugInfo()
gost-crypto 散列算法
SSL/TLS 提高
pgsql 異步支持
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 接口的對象
其餘特性
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
有多少不會的?幹!!!