許多可以被修正的 Fatal 錯誤,在 PHP7 中將以 Exceptions 異常的形式拋出。這些 Error Exceptions 繼承于?Error?類。而Error?類則實現(xiàn)了異?;?Throwable?接口。?
PHP7 中詳細的 Error 信息可以參考?PHP7 錯誤?。本文中僅僅介紹和向后兼容有關的信息如下。
之前,類構造函數(shù)在失敗時總是返回NULL或者返回一個不可用的 Object,但從 PHP7 開始,在構造函數(shù)初始化失敗時會拋出異常。
現(xiàn)在,解析?eval()?錯誤會拋出一個?解析異常?對象。其可以通過?catch?捕捉,并做相應處理。
所有?E_STRICT?級別的報錯已重新分配到其他報錯等級中。E_STRICT?常量依然保留,所以當你設置報錯等級為error_reporting(E_ALL|E_STRICT)?時,不會引起報錯。
變更情況如下表?
由于 PHP7 采用抽象的語法樹解析代碼文件,并且過去的 PHP 版本無法滿足該特性,這一變化將引起一些一致性問題。本節(jié)詳細介紹這塊的情況。
間接的使用變量、屬性、方法,將嚴格按照從左到右的順序執(zhí)行,而不會因形式問題導致歧義。下表將表明這一改變引起的差異。?
更多建議: