Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

PHP 各版本的重大改變

Posted on 2022 年 12 月 4 日2022 年 12 月 16 日 By 日落 在〈PHP 各版本的重大改變〉中有 2 則留言

這份整理拖太久了,到 PHP 8.2 都上線了還沒寫完,所以就整理到 7.x 結束吧。

PHP 從約 5.2 版就開始慢慢的加上一些重大的改變,像是 PHP v5.3 開始支援 `namespace` 之後,開始有了 composer 各種套件系統的發展。這些改變讓 PHP 的開發和維護更方便、更簡單。以下記錄各版本重要的功能,以便在更新程式時可以更快的了解有什麼需要留意的事項。

備註:我沒用過 PHP 4.x,如果你還在用的話,請多保重 ….

5.1

  • PDO 預設安裝並自動啟用。

5.2

  • JSON extension 預設安裝並自動啟用
  • Zend engine 改進記憶體管理,並解決多個效能問題

5.3

  • 開始支援 namespace
  • 支援 closures (lambda function / anonymous function)
  • 支援 late static binding
  • PHP Phar
  • 支援 ext-mysqlnd

5.4

  • 支援 Trait
  • 支援 array short syntax (可以使用 [] 來表示 array)
  • build-in server (透過 php -S 啟動)
  • 移除 register globals 和 magic quote 功能
  • 預設文字編碼改為 UTF-8

5.5

  • 支援使用 ::class 來取得類別的完整 namespace
  • 支援 ext-opcache
  • 支援 generators
  • 在 `try … catch` 中支援 finally

5.5

  • 靜態變數宣告中,支援使用運算式 (如 const MAX = 4 * ITEM_AMOUNT)
  • function 的 argument 支援 ... 運算子
  • 支援 ** (次方) 運算子
  • 支援 use 來 import function / class
  • 支援多種 I/O stream protocol (php://stdin , php://input)

備註:

  • PHP 5.x 在 2019-01-10 就終止支援、維護
  • PHP 5.6 之後是 PHP 7.0,如果看到有人介紹 PHP 6.x 可以不要理他 XD

7.0

  • Zend engine 重構以後,PHP 7 將比 5.x 的執行速度快一倍
  • 支援 64 bit 環境
  • 更安全的亂數產生器可以定義回傳值的 scalar type
  • 支援 anonymous class

7.1

  • 回傳值的資料型態可設定為 void 和 return null
  • 在類別中定義的 constant 可以定義 visibility
  • try ... catch 語法中,開始支援多種不同類型的 exception
  • 其他

7.2

  • Type hint 除了 scalar types 以外,也開始支援類別名稱,如 function setQueue(\Zeroplex\Queue $queue)
  • Hash 演算法支援 Argon2,另外 Mcrypt extension 則移除不再支援
  • 支援 ext-sodium (較快、較安全的加密演算法

7.3

  • Heredoc 的結尾不再需要在每行的第一個字元,可縮排

7.4

  • Class property 可以定義資料型別,如:private string $url;
  • 支援 Arrow Function (簡潔的 Closure 語法)
  • 支援 Weak reference
  • 在 OPcache 新增 preloading 功能

Tags:PHP

文章導覽

Previous Post: 在 Docker 安裝、運行 Mastodon
Next Post: 機車輪胎

Comments (2) on “PHP 各版本的重大改變”

  1. 小吳表示:
    2022 年 12 月 16 日11:38

    s/多太久/拖太久/g
    s/支持/支援/g
    s/運行/執行/g
    s/環傳值/回傳值/g
    s/再回傳/在回傳/g

    回覆
  2. 日落表示:
    2022 年 12 月 16 日11:48

    謝謝小吳幫忙!

    回覆

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.