天天看點

php5和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時代的産物,将完全無法使用,除了改寫一途外,别無他法。相

信現在的PHP世界裡,仍使用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,是以不再支援,GD1早已被現在的GD2取代了。

9.dl() 被移到 SAPI 中

dl()主要是讓設計師加載extension Libs,現在被移到 SAPI 中

10.Register Long Array 去除

從PHP5起預設是關閉,再PHP6中正式移除。

11.一些Extension的變更

例如 XMLReader 和 XMLWriter 将不再是以Extension的方式出現,他們将被移入

到PHP的核心之中,并且預設是開啟,ereg extension将被放入PECL,代表着它将

被移出PHP核心,這也是為了讓路給新的正規表達式extension,

此外,Fileinfo extension 也将被導入PHP的核心之中。

12.APC将被導入核心

這是一個提高PHP性能的功能,現在它将被放入PHP核心中,并且可以選擇是否啟用APC

13.告别ASP風格的起始标簽

原來是為了取悅ASP開發者轉向使用PHP,現今已經不再需要這種做法了,

最後,别期望PHP6的性能可以全面超過PHP5,有可能的是PHP6的執行效率會比

PHP5還要來的慢的,但是可以預期的是,PHP開發小組将會努力的完善PHP5,超

越PHP5。