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中,如果它可以使用,您可以在自己的程式中引用命名空間。 命名空間樣本 ﹤?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