2024 年日本 PHP 研討會

PHP 與相關專案的歷史

目錄

PHP 自 1990 年代中期誕生以來,已經走過了漫長的道路。從不起眼的開端,到成為驅動網路的最重要語言之一,PHP 的演變簡直就是一個極客的童話故事。請注意,如此爆炸性的增長並非易事。如果您有興趣簡要了解 PHP 如何發展到今天,請继续阅读。如果您想触摸一段互联网历史,可以在 » PHP 博物館 中找到 PHP 的舊版本。

新增註記

使用者貢獻的註記 1 則註記

okhalelawrence at gmail dot com
3 年前
PHP 6 的誕生;

在版本 5 之後:由於缺乏核心語言層級的原生 Unicode 支援,PHP 收到了褒貶不一的評價。2005 年,由 Andrei Zmievski 領導的一個項目啟動,旨在通過嵌入國際 Unicode 組件 (ICU) 函式庫,並在內部將文字字串表示為 UTF-16,從而在整個 PHP 中提供原生 Unicode 支援。由於這將對語言內部和使用者程式碼造成重大更改,因此計劃將其作為語言的 6.0 版發布,並附帶當時正在開發的其他主要功能。

PHP 7 的誕生;

在 2014 年和 2015 年期間,開發了一個新的主要 PHP 版本,PHP 7。此版本的編號在內部開發人員之間引起了一些爭論。雖然 PHP 6 Unicode 實驗從未發布,但一些文章和書籍標題引用了 PHP 6 名稱,如果新版本要重新使用該名稱,可能會造成混淆。經過投票,選擇了 PHP 7 這個名稱。

PHP 7 的基礎是一個最初被稱為 PHP 下一代 (phpng) 的 PHP 分支。它由 Dmitry Stogov、Xinchen Hui 和 Nikita Popov 共同編寫,旨在通過重構 Zend 引擎來優化 PHP 效能,同時保持近乎完整的語言相容性。到 2014 年 7 月 14 日,作為 phpng 項目主要基準測試套件的基於 WordPress 的基準測試顯示,效能提高了近 100%。phpng 的更改使得在未來版本中更容易提高效能,因為更緊湊的資料結構和其他更改被認為更適合成功遷移到即時 (JIT) 編譯器。由於這些重大更改,重新設計的 Zend 引擎被稱為 Zend Engine 3,取代了 PHP 5 中使用的 Zend Engine 2。

由於 phpng 的重大內部更改,根據 PHP 的發布流程,它必須獲得一個新的 PHP 主要版本號,而不是次要的 PHP 5 版本。PHP 的主要版本允許破壞程式碼的向後相容性,因此 PHP 7 提供了一個機會,可以在 phpng 之外進行其他需要破壞向後相容性的改進。

PHP 8 的誕生;

PHP 8 於 2020 年 11 月 26 日發布。PHP 8 是一個主要版本,並且與先前版本相比有所變更。新功能和值得注意的更改包括
即時編譯
PHP 8 支援即時編譯。
PHP 8 的 JIT 編譯器可以大幅提升某些使用案例的效能。PHP 開發者 Nikita Popov 表示,大多數網站的效能提升幅度不會像從 PHP 5 升級到 PHP 7 那麼顯著。JIT 編譯器帶來的效能提升,對於數學類型的操作預期會比一般網頁開發的使用案例更為顯著。此外,由於 JIT 編譯器提升了某些使用案例的效能,未來有可能將一些程式碼從 C 語言移轉到 PHP。
新增 match 運算式
主要條目:PHP 語法和語義 § Match
PHP 8 引入了 match 運算式。match 運算式在概念上類似於 switch 陳述式,並且在某些使用案例中更加簡潔。由於 match 是一個運算式,它的結果可以被賦值給變數或從函式返回。
類型變更和新增
PHP 8 引入了聯集類型 (Union Types)、新的 static 返回類型和新的 mixed 類型。
PHP 8 中新增了「屬性」(Attributes),在其他程式語言中通常稱為「註釋」(Annotations),允許將中繼資料新增到類別。
throw 從陳述式變更為運算式。這允許在以前不可能的地方拋出例外。資料來源:維基百科
To Top