PHP 慶祝 25 周年,朝著 8.0 版本繼續(xù)努力
2020 年 6 月 8 日,PHP 迎來了自己的 25 周歲生日。JetBrains 在博客中梳理了該語言自 1995 年誕生以來的種種歷程,這種語言最初是用 C 語言編寫的一組通用網(wǎng)關(guān)接口(Common Gateway Interfac,CGI)二進制文件,第一個 PHP 腳本套件被稱為 “個人主頁工具”或 “PHP 工具”。
1998 年發(fā)布的 PHP 的第三次迭代是 Andi Gutman 和 Zeev Suraski 重寫了 Lerdorf 編寫的現(xiàn)有解釋器的結(jié)果。JetBrains 解釋稱,此版本的 PHP 3.0 很像現(xiàn)在的 PHP 的第一個版本。語言的名稱改為遞歸縮寫 “PHP: Hypertext Preprocessor”。頂峰時,PHP 3 安裝在互聯(lián)網(wǎng)大約 10% 的 Web 服務(wù)器上。1999 年,Zend 公司成立,直到今天,Zend 仍在繼續(xù)為 PHP 做出貢獻并積極參與其中。
最初沒有 PHP 的正式規(guī)范,在著這種情況下該語言仍持續(xù)發(fā)展了 20 年的時間。直到 2014 年,PHP 規(guī)范出現(xiàn)。PHP 語言規(guī)范在 Facebook 內(nèi)部開發(fā),然后轉(zhuǎn)移到了公共領(lǐng)域。
而與此同時,除了這個 25 周年紀念日外,PHP 8.0 也有望在今年發(fā)布。程序員 Brent Roose 透露了即將在 2020 年 11 月底發(fā)布的 PHP 8.0 中即將發(fā)布的功能。此版本的第一個 Alpha 版將于 6 月 18 日發(fā)布。同時,PHP 8.0 將引入多項重大更改,并引入一些新功能,例如 JIT編譯器、聯(lián)合類型和屬性。
JIT編譯器
Roose 解釋稱,盡管還沒有基準測試,但 JIT編譯器有可能改善 PHP 的性能。不像 C 或 Java 這樣的編譯語言,PHP 是一種解釋性語言,這意味著它會在運行時轉(zhuǎn)換為機器碼。JIT在運行時編譯部分代碼,以便可以使用代碼的編譯版本。并表示,將 JIT編譯器添加到 PHP 的原因是,它可能使其能夠在 Web 開發(fā)上下文之外被視為一種高性能語言,并且可以隨著時間的流逝而得到改進。但是,一個很大的缺點是維護起來很復(fù)雜。
聯(lián)合類型
聯(lián)合類型是兩種或多種類型的集合,表示可以使用其中任何一種。而由于 PHP 是一種動態(tài)類型的語言,因此聯(lián)合類型有很多用例。
屬性
屬性在其他語言中通常稱為注解,它提供了一種向類添加元數(shù)據(jù)的方法,而無需解析文檔塊。
RFC 中的屬性示例:
有關(guān)功能和代碼示例的完整列表可查看:https://stitcher.io/blog/new-in-php-8