從5.3到如今的7.1,PHP經歷了幾個里程碑式的版本更新,本文爲你展現這些版本到底有何變化。php
本文來源於PHP官方文檔,這裏並不會展開,送給有心的小夥伴作研究清單。web
PHP 5.3
secure.php.net/manual/zh/m…算法
- 添加了命名空間的支持.
- 添加了靜態晚綁定支持.
- 添加了跳標籤支持.
- 添加了原生的閉包(Lambda/匿名函數)支持.
- 新增了兩個魔術方法, callStatic 和 invoke.
- 添加了 Nowdoc 語法支持, 相似於 Heredoc 語法, 可是包含單引號.
- 使用 Heredoc 來初始化靜態變量和類屬性/常量變爲可能.
- 可以使用雙引號聲明 Heredoc, 補充了 Nowdoc 語法.
- 可在類外部使用 const 關鍵詞聲明 常量.
- 三元運算操做符有了簡寫形式: ?:.
- HTTP 流包裹器將從 200 到 399 所有的狀態碼都視爲成功。
- 動態訪問靜態方法變爲可能.
- 異常能夠被內嵌.
- 新增了循環引用的垃圾回收器而且默認是開啓的.
- mail() 如今支持郵件發送日誌. (注意: 僅支持經過該函數發送的郵件.)
PHP 5.4
secure.php.net/manual/zh/m…sql
- 新增支持 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
secure.php.net/manual/zh/m…數組
- 新增 Generators
- 新增 finally 關鍵字
- foreach 如今支持 list()
- empty() 支持任意表達式
- array and string literal dereferencing ¶
- 新的密碼哈希 API
- 改進 GD
PHP5.6
secure.php.net/manual/zh/m…php7
- 使用表達式定義常量
- 使用 ... 運算符定義變長參數函數
- 使用 ... 運算符進行參數展開
- 使用 ** 進行冪運算
- use function 以及 use const
- phpdbg
- 默認字符編碼
- php://input 是可重用的了
- 大文件上傳(如今能夠支持大於 2GB 的文件上傳)
- GMP 支持運算符重載
- 使用 hash_equals() 比較字符串避免時序攻擊
- __debugInfo()
- gost-crypto 散列算法
- SSL/TLS 提高
- pgsql 異步支持
PHP7.0
secure.php.net/manual/zh/m…閉包
- 標量類型聲明
- 返回值類型聲明
- null合併運算符
- 太空船操做符(組合比較符)
- 經過 define() 定義常量數組
- 匿名類
- Unicode codepoint 轉譯語法
- Closure::call()
- 爲unserialize()提供過濾
- IntlChar
- 預期
- Group use declarations
- 生成器能夠返回表達式
- Generator delegation
- 整數除法函數 intdiv()
- 會話選項
- preg_replace_callback_array()
- CSPRNG Functions
- 可使用 list() 函數來展開實現了 ArrayAccess 接口的對象
- 其餘特性
PHP7.1
secure.php.net/manual/zh/m…curl
- 可爲空(Nullable)類型
- Void 函數
- Symmetric array destructuring
- 類常量可見性
- iterable 僞類
- 多異常捕獲處理
- list()如今支持鍵名
- 支持爲負的字符串偏移量
- ext/openssl 支持 AEAD
- 經過 Closure::fromCallable() 將callables轉爲閉包
- 異步信號處理
- HTTP/2 server push support in ext/curl
有多少不會的?幹!!!異步