PHP的下一個版本,V6,包含了很的新特性和語法改進,會使它在面向對像方面性更易用。
其他重要的特性:比如在核心函數中對Unicode
(統一編碼)的支持,這意味著 PHP 6提供了更好的更可靠國際支持。
PHP已經很流行,被無數的站點使用,被大部分因特網接入商所支
持,被Yahoo這樣的大網絡公司使用著。在即將來臨的PHP版本中準備增加一些成功的新特性,使PHP在某些場合下更易用更安全。你準備好接受 PHP
6 了嗎?如果你明天就升級了,你的程序會運行得很好嗎?你該怎麼辦?這篇文章集合了PHP 6的改變,他們中的一些備份移植到版本的PHP
v5.x,您目前的腳本可能需要進行一些調整。
如果你現在使用不是PHP,但是一直在考慮它,考慮一下它的新特性。這些特點,從
Unicode的核心支持到XML支持,使它更容易為你寫的功能填補PHP的應用。
PHP 6 新特性
PHP
6當前已經作為開發者快照使用,所以你可以下載和試用一下這篇文章列出很多特性,這些特性已經在當前的快照中實現了。見資源。
改
進 Unicode 支持
在PHP的核心函數中,有很多對Unicode
字符串的支持的改進,這些新特性將產生巨大的影響因為它允許PHP為國際字符提供更多的支持。所以如果一個開發者或者架構師使用不同的語言,例如Java
程序語言,是因為它具有超過PHP的國際化支持的話,當支持改進時他會花一點時間來考慮一下PHP。
因為今天你已經可以下載到開發者版本
的 PHP V6,你將看到一些功能函數已經支持Unicode字符串。有一個函數清單已經被測試和驗證了完全可以處理Unicode,參見資源。
命
名空間
命名空間是一種避免因函數或者類之間的命名衝突而使你的函數和類以及方法無法讀取,而不使用前綴命名慣例的一種方法。因
此,通過使用命名空間,你可以命名別人可能已經使用的類名,而不用擔心在運行時會出錯。表一提供了一個在PHP中使用命名空間的示例。
您
不用在源代碼中做更新或更改,因為你寫的任何PHP代碼可以不包含命名空間而運行得很好。因為命名空間特性似乎會移植到PHP 5.3
X中,如果它可以使用,您可以在自己的程序中引用命名空間。
表一,命名空間示例
程序代碼
CODE:
<?php
// I'm not sure why I would implement my own XMLWriter, but at least //
the name of this one won't collide with the one built in to PHP
namespace NathanAGood; class XMLWriter { // Implementation here... }
$writer = new NathanAGood::XMLWriter(); ?>
Web 2.0 特性
依
賴於你怎麼使用PHP和你現在腳本的是什麼樣子的,現在的語言和語法差異,可能會或者不會最大程度的影響下面一些特性,這是指那些直接讓你引用的Web
2.0功能到你的PHP應用程序。
SOAP
SOAP是一種網絡服務「說話」的協議,並且支持不少其他語
言,例如Java和微軟的.NET,雖然有其他的方法來驅動和使用網絡服務,比如 表象化狀態轉變(Representational State
Transfer
)REST,SOAP仍然在使不同平台具有可操作性中是最常用的。此外,SOAP在PHP擴展和PEAR庫中使用,SOAP在PHP中默認是不支持的,因
此你啟用這個擴展或者叫你的ISP啟用。此外,PEAR包允許你建立SOAP客戶端和服務器,如SOAP包。
如果你改變了默認設
置,SOAP將會在PHP 6中啟用。這個擴展將提供你很容易的的實現SOAP客戶端和SOAP服務,允許你編寫的應用提供使用或者網絡服務。
如
果SOAP擴展是默認設置,那就意味著你不能在PHP中設置它們,如果您開發的PHP應用程序並且它們發佈到一個ISP服務器上,您可能需要檢查一下你的
ISP,以驗證SOAP並啟用為他們升級。
XML
在PHP 5.1中XMLReader
和XMLWriter已經變成PHP核心的一部分,這使你工作起來更輕鬆如果在你的PHP程序中需要使用到XML的話。和SOAP擴展一樣,如果你使用
SOAP或者XML這是個好消息因為PHP 6比已經出爐的PHP4 更適合你。
被刪除的東西
除了具有的
一些新功能,PHP 6引擎將刪除一些在前面版本中已經有的功能。大部分這些功能,如register_globals 和safe_mode
在目前的PHP中被視為「破的」。因為他們可能會暴露一些安全風險。PHP在努力的清除中,在下一個版本中這些將從PHP中刪除或者廢棄。反對者認為大部
分ISP或者企業會保留現在的腳本因為升級到PHP6會破壞現在的的腳本,但是支持者認為很高興看到PHP團隊修補了這些漏洞,並且提供了一個乾淨,安全
的運行工具。
將從PHP刪除的功能有:
magic_quotes register_globals
register_long_arrays safe_mode
From: http://www.wowbox.com.tw/blog/article.asp?id=2727
PHP6多了
1.支援Unicode
支援Unicode是有其必然,雖然Unicode佔用較多的空間,但Unicode帶來
的便利性,遠超過佔用空
間的缺點,尤其在國際化的今天,硬體設備愈來
愈強大,網速也大幅度的提昇這麼一點小小的缺點是可以忽略。另外一點
,PHP也可以
在.ini檔案中設定是否開啟支持Unicode決定權在你自己,
這是一個不錯的點子,關掉Unicode的支持,PHP的性能並不會有大幅度的
提
昇主要的影響在於需要引用字串的Function(這可以理解)。
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 Out
老
實說,這個模式劣者也不知是怎樣一回事,移除就移除吧,反正也用不到^^"
5'var' to alias 'public'
在
類別內的Var宣告變成public的別名,相信是為了相容PHP5而作的決定,
PHP6現在也可以稱作是oo語言了,
6
Return by Reference will error
現在透過參考回傳將會是編譯器將報錯 例如 $a =& new
b()、function &c(),
現在將報錯,oo語言預設就是參考所以不需要再使用&參考子。
7.zend.ze1
compatbility mode 將被除去
Zend.ze1相容模式將被除去,PHP5時為相容舊有PHP4,所以在.ini中可選擇是否
開
啟相容模式,原因在於PHP5使用的是第二代解析引擎,但是相容模式並不是百
分之百能解析PHP4語法,所以舊時代的產物,Out。
8
Freetype 1 and GD 1 support 將不見
這二個是很舊的Libs,所以不再支援,Freetype
1應該是某種字型,不過不太確定
,GD1已經被現今的GD2取代了
9.dl() moves to SAPI
dl()
主要是讓設計師加載extension Libs現在被移到 SAPI中
10.Register Long Array 去除
從
php5起預設是關閉,在php6中正式移除
11.一些Extension的變更
例如 XMLReader 和
XMLWriter 將不在是以Extension的方式出現,它們將被移入
到PHP的核心之中,並且預設是開啟,ereg
extension將被放入PECL,代表者它將
被移出PHP核心,這也是為了讓路給new regular expression
extension,
此外,Fileinfo exntesion 也將被導入PHP的核心之中
12.APC將被導入核心
這
是一個加入PHP性能的功能,現在它將被放入PHP核心中,並且可以選擇是否啟
用APC
13.告別ASP風格的啟始標籤
為
了取悅ASP開發者轉向使用PHP,現今已經不再需要這種作法了....XD
最後,別期望PHP6的性能可以全面超過PHP5,有可能的
是PHP6的執行效能會比
PHP5還要來的慢的,但是可以預期的,PHP開發小組將會努力的完善PHP6,超
越PHP5。
留言列表