Zend与PHP之间到底是什么关系
生活随笔
收集整理的這篇文章主要介紹了
Zend与PHP之间到底是什么关系
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Zend與PHP之間是什么關(guān)系
What is Zend's relationship with PHP?每次看到PHP虛擬機(jī)中出現(xiàn)zend、zendvar之類的都很困惑,特意查了一下...
PHP最開始是由Rasmus Lerdorf在1994年發(fā)明,原名為Personal Home Page(PHP),最初底層由perl語言開發(fā),后改為C語言開發(fā),此時的PHP/IF即為用C語言開發(fā)的一些CGI工具程序集...?1995年6月8日Rasmus Lerdorf將PHP/FI的代碼公開。任職于Technion IIT公司的兩個以色列程式設(shè)計師:Zeev Suraski和Andi Gutmans,重寫了PHP的解釋器,成為PHP 3的基礎(chǔ),而PHP也在這個時候改稱為Hypertext Preprocessor (PHP). 經(jīng)過幾個月測試,開發(fā)團(tuán)隊在1997年11月公布了PHP/FI 2,隨后就開始PHP3的開放測試,最后在1998年6月正式發(fā)布PHP3。Zeev Suraski和Andi Gutmans在PHP 3發(fā)布后開始改寫PHP的核心,在1999年發(fā)布的PHP解釋器命名為Zend Engine,Zend來源于這兩個人名字中的Zeev 和?Andi,?而他們也在以色列的Ramat Gan成立了以他們的名字命名的Zend Technologies公司來管理PHP的開發(fā)。PHP4+以上版本,虛擬機(jī)(解釋器) 從此被稱為?Zend Engine。 The Zend?Engine is a virtual machine that takes assembly-style, three-address instruction?code and executes it.
While there's a lot of Zend in PHP, and Rasmus, Andi and Zeev are all involved at various levels, Zend Technologies does not control the development process. Indeed, nobody really controls the development process. php-internals is?working on that.
The reason you see Zend all over the place when writing C extensions is due to the Zend Engine.
最初: PHP/FI (PHP/Form Interpreter)
正如我們今天知道的那樣,PHP起源于由Rasmus Lerdorf.用Perl開發(fā)的兩個工具。PHP是 Personal Homepage Tool的簡寫,意為“個人主頁工具”,而FI即Form Interpreter,意為表單解釋器。 結(jié)合這兩種工具形成的宏命令可用來發(fā)送SQL語句到數(shù)據(jù)庫、處理表單和流控制。 這兩個工具用C語言重寫后組合成了PHP/FI 2.0 (PHP/Form Interpreter 2.0)。這個時期的PHP看上去和現(xiàn)在的語法不太一 樣,但本質(zhì)上沒有太大的不同。它支持變量、關(guān)聯(lián)數(shù)組和函數(shù)。當(dāng)然,那時還沒有對象。語法糖: PHP 3 事實上,在PHP3的計劃階段,對象并不在安排之中。和今天的PHP一樣,PHP3的主要架構(gòu) 設(shè)計師也是Zeev Suraski和Andi Gutmans o PHP 3是由PHP/FI 2.0完全重寫成的,但是對象并不是新 語法中必需的部分。
據(jù)Zeev Suraski回憶,PHP對類的支持實際上是后來才加上的(準(zhǔn)確地說是1997年8月27日)。 那時的類和對象實際上是定義和存取關(guān)聯(lián)數(shù)組的另一種方式。
當(dāng)然,加入了方法和繼承使得類比關(guān)聯(lián)數(shù)組更加強(qiáng)大,但那時對于類的操作仍然存在很多局 限性,比如不能訪問父類中被覆蓋的方法(如果你不明白這里的意思也不用擔(dān)心,我們將會在后 面解釋)。另一個不足之處是對象在PHP腳本中被傳遞的方式并非最佳,我們馬上就會講到。
在這個時期對象只是個邊緣話題,在官方文檔中也沒有提及這方面的內(nèi)容。PHP手冊只用了 一句話和一段代碼示例來介紹對象,而且該示例沒有介紹對象的繼承和屬性等。
PHP的發(fā)明人Rasmus Lerdorf
Zend Technologies的創(chuàng)辦人之一 - Zeev Suraski
Zend Technologies的創(chuàng)辦人之一 - Andi Gutmans
PHP原本的簡稱為Personal Home Page,是拉斯姆斯·勒多夫Rasmus Lerdorf 為了要維護(hù)個人網(wǎng)頁,而用c語言開發(fā)的一些CGI工具程序集,來取代原先使用的Perl程序。最初這些工具程序用來顯示拉斯姆斯·勒多夫的個人履歷,以及統(tǒng)計網(wǎng)頁流量。他將這些程序和一些表單直譯器整合起來,稱為PHP/FI。PHP/FI可以和資料庫連接,產(chǎn)生簡單的動態(tài)網(wǎng)頁程序。拉斯姆斯·勒多夫在1995年6月8日將PHP/FI公開公布,希望可以透過社群來加速程序開發(fā)與尋找錯誤。這個公布的版本命名為PHP?2,已經(jīng)有今日PHP的一些雛型,像是類似Perl的變量命名方式、表單處理功能、以及嵌入到HTML中執(zhí)行的能力。程序語法上也類似Perl,有較多的限制,不過更簡單、更有彈性。
在1997年,任職于Technion IIT公司的兩個以色列程序設(shè)計師:Zeev Suraski和Andi Gutmans,重寫了PHP的解釋器,成為PHP?3的基礎(chǔ),而PHP也在這個時候改稱為PHP: Hypertext Preprocessor.。經(jīng)過幾個月測試,開發(fā)團(tuán)隊在1997年11月公布了PHP/FI 2,隨后就開始PHP?3的開放測試,最后在1998年6月正式公布PHP?3。Zeev Suraski和Andi Gutmans在PHP?3公布后開始改寫PHP的核心,這個在1999年公布的剖析器稱為Zend Engine,他們也在以色列的Ramat Gan成立了Zend Technologies來管理PHP的開發(fā)。
在2000年5月22日,以Zend Engine 1.0為基礎(chǔ)的PHP?4正式公布,2004年7月13日則公布了PHP?5,PHP?5則使用了第二代的Zend Engine。PHP包含了許多新特色,像是強(qiáng)化的面向?qū)ο蠊δ堋⒁隤DO(PHP?Data Objects,一個存取資料庫的延伸函式庫)、以及許多效能上的增強(qiáng)。目前PHP?4已經(jīng)不會繼續(xù)更新,以鼓勵用戶轉(zhuǎn)移到PHP?5。
2008年PHP?5成為了PHP唯一維護(hù)中的穩(wěn)定版本。最新的發(fā)布版本為PHP?5.6.9。
PHP 6 的開發(fā)也正在進(jìn)行中,主要的改進(jìn)有移除register_globals、magic quotes 和 Safe mode 的功能。
PHP?7的于2015年12月3日開發(fā)完成,主要的改進(jìn)有PHPNG、JIT引擎、抽象語法樹編譯、異步編程。
總結(jié)
以上是生活随笔為你收集整理的Zend与PHP之间到底是什么关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自己做课程表_Python课
- 下一篇: jsp案例:计算矩形、圆形面积