PHP最近的6個版本到底多了啥?

從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

有多少不會的?幹!!!異步

相關文章
相關標籤/搜索