PHP 6預(yù)覽 新增多項(xiàng)特性及改進(jìn)
51CTO推薦:PHP+MySQL視頻教程
PHP的下一個(gè)版本,V6,包含了很的新特性和語法改進(jìn),會(huì)使它在面向?qū)ο蠓矫嫘愿子谩F渌匾奶匦赃€有在核心函數(shù)中對(duì)Unicode (統(tǒng)一編碼)的支持,這意味著 PHP 6提供了更好的更可靠國際支持。
PHP已經(jīng)很流行,被無數(shù)的站點(diǎn)使用,被大部分因特網(wǎng)接入商所支持,被Yahoo這樣的大網(wǎng)絡(luò)公司使用著。在即將來臨的PHP版本中準(zhǔn)備增加一些成功的新特性,使PHP在某些場(chǎng)合下更易用更安全。你準(zhǔn)備好接受 PHP 6 了嗎?如果你明天就升級(jí)了,你的程序會(huì)運(yùn)行得很好嗎?你該怎么辦?這篇文章集合了PHP 6的改變,他們中的一些備份移植到版本的PHP v5.x,您目前的腳本可能需要進(jìn)行一些調(diào)整。
如果你現(xiàn)在使用不是PHP,但是一直在考慮它,考慮一下它的新特性。這些特點(diǎn),從Unicode的核心支持到XML支持,使它更容易為你寫的功能填補(bǔ)PHP的應(yīng)用。
PHP 6新特性
PHP 6當(dāng)前已經(jīng)作為開發(fā)者快照使用,所以你可以下載和試用一下這篇文章列出很多特性,這些特性已經(jīng)在當(dāng)前的快照中實(shí)現(xiàn)了。
改進(jìn)Unicode 支持
在PHP的核心函數(shù)中,有很多對(duì)Unicode 字符串的支持的改進(jìn),這些新特性將產(chǎn)生巨大的影響因?yàn)樗试SPHP為國際字符提供更多的支持。所以如果一個(gè)開發(fā)者或者架構(gòu)師使用不同的語言,例如Java程序語言,是因?yàn)樗哂谐^PHP的國際化支持的話,當(dāng)支持改進(jìn)時(shí)他會(huì)花一點(diǎn)時(shí)間來考慮一下PHP。
因?yàn)榻裉炷阋呀?jīng)可以下載到開發(fā)者版本的 PHP V6,你將看到一些功能函數(shù)已經(jīng)支持Unicode字符串。有一個(gè)函數(shù)清單已經(jīng)被測(cè)試和驗(yàn)證了完全可以處理Unicode,參見資源。
命名空間
命名空間是一種避免因函數(shù)或者類之間的命名沖突而使你的函數(shù)和類以及方法無法讀取,而不使用前綴命名慣例的一種方法。因此,通過使用命名空間,你可以命名別人可能已經(jīng)使用的類名,而不用擔(dān)心在運(yùn)行時(shí)會(huì)出錯(cuò)。下面提供了一個(gè)在PHP中使用命名空間的示例。
您不用在源代碼中做更新或更改,因?yàn)槟銓懙娜魏蜳HP代碼可以不包含命名空間而運(yùn)行得很好。因?yàn)槊臻g特性似乎會(huì)移植到PHP 5.3 X中,如果它可以使用,您可以在自己的程序中引用命名空間。
命名空間示例
﹤?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和你現(xiàn)在腳本的是什么樣子的,現(xiàn)在的語言和語法差異,可能會(huì)或者不會(huì)最大程度的影響下面一些特性,這是指那些直接讓你引用的Web 2.0功能到你的PHP應(yīng)用程序。
SOAP
SOAP是一種網(wǎng)絡(luò)服務(wù)“說話”的協(xié)議,并且支持不少其他語言,例如Java和微軟的.NET,雖然有其他的方法來驅(qū)動(dòng)和使用網(wǎng)絡(luò)服務(wù),比如 表象化狀態(tài)轉(zhuǎn)變(Representational State Transfer )REST,SOAP仍然在使不同平臺(tái)具有可操作性中是最常用的。此外,SOAP在PHP擴(kuò)展和PEAR庫中使用,SOAP在PHP中默認(rèn)是不支持的,因此你啟用這個(gè)擴(kuò)展或者叫你的ISP啟用。此外,PEAR包允許你建立SOAP客戶端和服務(wù)器,如SOAP包。
如果你改變了默認(rèn)設(shè)置,SOAP將會(huì)在PHP 6中啟用。這個(gè)擴(kuò)展將提供你很容易的的實(shí)現(xiàn)SOAP客戶端和SOAP服務(wù),允許你編寫的應(yīng)用提供使用或者網(wǎng)絡(luò)服務(wù)。
如果SOAP擴(kuò)展是默認(rèn)設(shè)置,那就意味著你不能在PHP中設(shè)置它們,如果您開發(fā)的PHP應(yīng)用程序并且它們發(fā)布到一個(gè)ISP服務(wù)器上,您可能需要檢查一下你的ISP,以驗(yàn)證SOAP并啟用為他們升級(jí)。
XML
在PHP 5.1中XMLReader 和XMLWriter已經(jīng)變成PHP核心的一部分,這使你工作起來更輕松如果在你的PHP程序中需要使用到XML的話。和SOAP擴(kuò)展一樣,如果你使用SOAP或者XML這是個(gè)好消息因?yàn)镻HP 6比已經(jīng)出爐的PHP4 更適合你。
被刪除的東西
除了具有的一些新功能,PHP 6引擎將刪除一些在前面版本中已經(jīng)有的功能。大部分這些功能,如register_globals 和safe_mode 在目前的PHP中被視為“破的”。因?yàn)樗麄兛赡軙?huì)暴露一些安全風(fēng)險(xiǎn)。PHP在努力的清除中,在下一個(gè)版本中這些將從PHP中刪除或者廢棄。反對(duì)者認(rèn)為大部分ISP或者企業(yè)會(huì)保留現(xiàn)在的腳本因?yàn)樯?jí)到PHP6會(huì)破壞現(xiàn)在的的腳本,但是支持者認(rèn)為很高興看到PHP團(tuán)隊(duì)修補(bǔ)了這些漏洞,并且提供了一個(gè)干凈,安全的運(yùn)行工具。
將從PHP刪除的功能有:
magic_quotes register_globals register_long_arrays safe_mode
【編輯推薦】