PHP6

PHP6

PHP 是一種在伺服器端執行,嵌入到HTML文檔的腳本語言,早期的風格類似於C語言與Perl語言,被廣泛的運用於網路開發中。PHP6是下一代PHP版本,主要特性為支持Unicode標準。2015年6月11日,PHP官網發布消息,正式公開發布PHP7第一版的alpha版本。

定義


2007年在巴黎舉行的PHP開發者大會中,PHP6開發的消息開始流傳開來。於PHP大會討論的PHP6將有很大幅度的變化,但這只是草案階段,並不代表所有會議的記錄都會隨著PHP6的揭曉而包含在變更中,也就是說,在揭曉 PHP6之前,還是會有異動的情形,但是可以確定的是下面所列的數項變化,將會隨著PHP6一同面世(當然不是百分百咯)趕快來看看這些新特徵吧:
1、支持Unicode。Unicode是有其必然,雖然Unicode佔用較多的空間,但Unicode帶來的便利性,遠超過佔用空間的缺點,尤其在國際化的今天,硬體設備越來越強大,網速也大幅度的提升,這麼一點小小的缺點是可以忽略的。另外一點,PHP也可以在.ini文件中設定能不能開啟支持Unicode,決定權在你自己,這是一個不錯的點子,關掉Unicode的支持,PHP的性能並不會有大幅度的提升,主要的影響在於需要引用字元串函數
2、Register Globals 將被移除這是一個主要的決定,老的PHP使用者會覺得Register Globals蠻方便的,但是卻忽略了Register Globals會帶來程序上安全性的隱患,大多數的主機上此項功能是關閉的,印象中從PHP4.3.x版開始,此項默認配置值即是關閉狀態,PHP6正式移除Register Globals也代表著如果程序是PHP3時代的產物,將完全不能運用,除了改寫用途外,別無他法。
3、Magic Quotes 將取消Magic Quotes主要是自動轉義須要轉義的字元,此項功能移除也符合大多數PHP開發者的心聲。
4、Safe Mode 取消。老實說,這個模式不知道哪裡不好,取消就取消吧,反正也用不到。
5、’var’ 別名為 ‘public’,在類中的var聲明變成public的別名,相信是為了兼容PHP5而作的決定,PHP6現在也可以稱作為OO語言了。
6、通過引用返回將出錯未來通過引用返回編譯器將會報錯 例如$a =& new b()、function &c(),OO語言默認就是引用,所以不須要再運用 &了。
7、zend.ze1 compatbility mode 將被移去(Zend.ze1相容模式將被移去),PHP5是為兼容舊有PHP4,所以在.ini中可選擇是否開啟相容模式,原由在於PHP5運用的是第二代分析引擎,但是相容模式並不是百分之百能分析 PHP4語法,所以舊時代的產物,移除。
8、Freetype 1 and GD 1 support 將不見這兩個Libs存在了很久,php6將不再支持,況且GD1早已被現在的GD2取代了。
9、dl() 被移到 SAPI 中dl()主要是讓設計師載入extension Libs,現在被移到 SAPI 中。
10、Register Long Array 去除 從PHP5起默認是關閉,在PHP6中正式移除。
11、一些Extension的變更例如 XMLReader 和 XMLWriter 將不再是以Extension的方式出現,他們將被移入到PHP的核心之中,並且默認是開啟,eregextension將被放入PECL,代表著它將被移出PHP核心,這也是為了讓路給新的正則表達式extension,此外,Fileinfo extension 也將被導入PHP的核心之中。
12、APC將被導入核心這是一個提高PHP性能的功能,現在它將被放入PHP核心中,並且可以選擇是否啟用APC。
13、告別ASP風格的起始標籤原來是為了取悅ASP開發者轉向運用 PHP,現今已經不再須要這種做法了。
最後,別期望PHP6的性能可以徹底超過PHP5,有可能PHP6的執行效率會比PHP5還要來得慢,但是可以預期的是,PHP開發小組將會努力的完善PHP6,超越PHP5。

發布時間


在編寫這段文字的時候已經到了2013年的聖誕夜,但php6還是沒有出來,我們也不必灰心,因為從提出php6計劃的2007年至今php並沒有停止前進的步伐,php的版本已經更新到了5.5.7,當時設想的很多特性已經在php5.3與php5.4中實現,包括命名空間、移除rigester globals等,而且很加入了許多新特性,比如支持Trait、引入yield關鍵字支持generators、精簡數組語法、函數類型提示的增強等,php的性能也有較大的提高,內存的使用不斷減少。
至於php6為什麼遲遲未能發布,從網路透露的消息來看主要有幾點:
1、開發小組認為,如果不能完全解決Unicode就不能稱之為php6;
2、當初提出開發php6的草案有點操之過急,需要解決的問題超出當時想像;
3、開發成員並未對php6展現出100%的熱情,從另一個方面來說,解決Unicode並非是當前最重要的事情;
4、除了unicode,當初提出的草案要點在現在的php5中基本實現,可以說php5.4或php5.5就可稱之為php6。
在unicode方面,php小組基本都有了明確的解決方案,比如mbstring函數在不斷改進,只是這些與unicode相關的進程並未集成到語言當中,因此,php6的誕生只是順理成章的問題。
2015年6月11日,PHP官網發布消息,正式公開發布PHP7第一版的alpha版本。

上PHP7原因


最廣為使用的直譯式語言PHP終於有最新正式版的消息了,經過PHP社群核心貢獻者投票,超過7成的人同意最新的PHP版號將是PHP7而非PHP6。從2005年開發至2010年終止的PHP6,已在這幾年陸續將新功能併入PHP5.3以及PHP5.4中。
PHP社群核心參與者Andrea Faulds與Zeev Suraski在PHP的Wiki上,共同發表文章表示,PHP6的開發遇到了一些問題,導致一直沒辦法釋出正式版本(General Availability),他們認為PHP6是一個失敗的專案,現在是該進到PHP7的時候了。PHP7原先是PHP社群中的惠新辰與Dmitry Stogov私下進行的PHPNG專案,後來專案較成型后公開而受大家所接受,並朝下一個PHP接班版本發展。