PHP 6 出了好些年了,雖然現在普遍用的還是 PHP 5,但是畢竟PHP 6還是未來的趨勢。那麼PHP 6對於 PHP 5來說,有什麼變化,有哪些地方改進了呢?
支持Unicode是有其必然,雖然Unicode占用較多的空間,但Unicode帶來的便利性,遠超過占用空間的缺點,尤其在國際化的今天,硬件設備越來越強大,網速也大幅度的提升,這麼一點小小的缺點是可以忽略的。
另外一點,PHP也可以在.ini文件中設定是否開啟支持Unicode,決定權在你自己,這是一個不錯的點子,關掉Unicode的支持,PHP的性能並不會有大幅度的提升,主要的影響在於需要引用字符串的函數。
這是一個重要的決定,說多新進的PHP開發者會覺得Register Globals滿方便的,但是卻忽略了Register Globals會帶來程序上安全性的隱患,大多數的主機上此項功能是關閉的,印象中從PHP4.3.x版開始時,此項默認設置值即是關閉狀態,PHP6正式移除Register Globals也代表著如果程序是由PHP3時代的產物,將完全無法使用,除了改寫一途外,別無他法。相信現在的PHP世界裡,仍使用PHP3時代所產生的程序應該是少之又少。
Magic Quotes主要是自動轉義需要轉義的字符,此項功能移除也符合大多數PHP開發者的心聲。
老實說,這個模式不知道哪裡不好,取消就取消吧,反正也用不到。
在類中的var聲明變成public的別名,相信是為了兼容PHP5而作的決定,PHP6現在也可以稱作為OO語言了。
現在透過引用返回編譯器將會報錯。例如$a =& new b()、function &c(),OO語言默認就是引用,所以不需要再使用&了。
PHP5是為兼容舊有PHP4,所以在.ini中可選擇是否開啟相容模式,原因在於PHP5使用的是第二代解析引擎,但是相容模式並不是百分之百能解析PHP4語法,所以舊時代的產物,移除。
這兩個是很久的Libs,所以不再支持,GD1早已被現在的GD2取代了。
dl()主要是讓設計師加載extension Libs,現在被移到 SAPI 中
從PHP5起默認是關閉,再PHP6中正式移除。
例如 XMLReader 和 XMLWriter 將不再是以Extension的方式出現,他們將被移入到PHP的核心之中,並且默認是開啟,ereg extension將被放入PECL,代表著它將被移出PHP核心,這也是為了讓路給新的正則表達式extension,此外,Fileinfo extension 也將被導入PHP的核心之中。
這是一個提高PHP性能的功能,現在它將被放入PHP核心中,並且可以選擇是否啟用APC
原來是為了取悅ASP開發者轉向使用PHP,現今已經不再需要這種做法了,最後,別期望PHP6的性能可以全面超過PHP5,有可能的是PHP6的執行效率會比PHP5還要來的慢的,但是可以預期的是,PHP開發小組將會努力的完善PHP 6,超越PHP 5。