php6介紹



去年在巴黎舉行的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時代的產物,將完全無法使用,除了改寫一途外,別無他法。相
信現在的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。
那麼,對PHP6有興趣的朋友現在可以到PHP官方網站上下載,試試這些功能是否真的已經
在PHP6中體現出來了,下載地址http://snaps.php.net/
PHP5其實有幾快#question#
Point 1 - 6 我都十分認同。