<?php
class anything {
const const_name = 'value';
const const_name = 'value2';
}
?>
<?php
$var1 = "value";
function return_val() {
global $var_name;
return $var_name;
}
$var2 = &return_val();
?>
這段代碼過去是可以工作的(直到5.0.4版本),但是現在在5.1版本中會拋出一個e_strict異常。
也許5.1.x不久也會退場,但是其中引入了許多有價值的改進-pdo的引入可能是最值得稱道的。要詳細了解php文檔中的更改日志,可以看一下這里有關php 5.1(和早些版本)變化的詳盡列表。
三、php 6.0中要作的改變
php 6.0估計會是一個相當激動人心的發行。然而,什么東西都是一分為二的。不過,看起來最令我氣惱的三個家伙(register_globals,magic_quotes_gpc和safe_mode)可能要退位了。第一個存在一個很大的安全漏洞;第二個由于操作大量數據所以在改變環境時簡直就是一場夢魘;而第三個是一個無人能理解的錯誤的名稱并且會給人帶來一種安全方面的錯覺。在unicode問題上,還有大量的工作要做。下面是預計的一些新變化:
·register_globals,safe_mode和各種魔術引用選項將被刪除。
·ereg擴展將被刪除,而xmlreader,xmlwriter和fileinfo擴展將被添加到內核上并且在缺省情況下為on狀態。
·我發現的另外一處令人激動的新變化是,apc(alternative php cache)將被添加到內核上,盡管在缺省情況下為off狀態。apc可以為開發者提供嚴謹的性能益處。
·所有的e_strict消息將被合并進e_all-這又是針對良好編程實踐所作出的一個積極更改。
·不再支持asp風格的標簽<%。
·引入了新的64位整型數。當前的整數類型被保留下來-至于是32還是64位將依賴平臺而定。
·可以結合多維數組使用foreach,例如foreach($array as $k => list($a, $b))。
·在php.ini新引入的一個開關將允許你禁止unicode語義(缺省地,它們被置為on狀態)。
·還有各種針對unicode的字符串操作上的改進。
·microtime()函數將返回完整的浮點數,而不是象目前的微秒值unix_timestamp。這樣更可能有利于大多數人的使用。
·不再支持用于字符串索引的{}注釋,而[]版本將被添加到substr()和array_slice()功能中。以前的[]為許多人所批評,但是大多數的開發者,包括我在內,都一直使用[]。
·在針對cgi sapi情形時,將一直啟用fastcgi,并且不會被禁止。
·不再支持古老的http_*_vars全局變量。
·var將有一個新的別名public。在php4 類中var是被允許的,但是在php 5中,這將會引發一個警告。在php 6中,var將僅是public的一個別名,因此將不會再出現警告。
·ze1兼容性模式將被刪除-這一方式原來試圖保留php 4的行為但是卻存在一些錯誤。
·不再允許用靜態語法來調用動態函數。
另外,還存在許多要決定的問題,例如命名空間可能更為重要,但是目前基本上還沒有得到同意。你可以讀一下最近的php開發者會議上對于php 6的詳細討論。盡管php 6尚未出臺,但是我相信在其最終發行之前一定存在不少周折。盡管如此,php所做出的貢獻已得到業界的充分認可,其前途是一片光明的。
最大的網站源碼資源下載站,
新聞熱點
疑難解答