這里只記錄了 PHP OOP 模型的變更記錄。有關變更功能的具體描述與其他相關注意事項,可以到具體的 OOP 文檔鏈接中查看。
版本 | 說明 |
---|---|
8.1.0 | 添加:支持類常量的 final 修飾符。此外,接口常量默認可覆蓋。 |
7.4.0 | 已變更:可以通過 __toString() 拋出異常。 |
7.4.0 | 增加:支持限制返回類型協(xié)變與參數類型逆變。 如果使用自動加載,則完整的差異支持可用。 在一個文件內,只有非循環(huán)類型引用是可能的。 |
7.4.0 | 增加:可以給類屬性增加類型。 |
7.3.0 | 不兼容:不再支持對使用非 int 鍵的 Traversable 進行參數解包。該功能不是有意設計的,因此被刪除。 |
7.3.0 | 不兼容:在以前的版本中,可以通過分配一個引用來分離靜態(tài)屬性,這一特性已被移除。 |
7.3.0 |
已變更: instanceof
運算符允許將字面量作為第一個操作數,在這種情況下,結果始終是 false 。
|
7.2.0 | 廢棄:__autoload() 方法已被廢棄,請使用 spl_autoload_register() 代替。 |
7.2.0 |
已變更:object 做為保留關鍵字,不允許做為
classes、interfaces、traits 的名稱。
|
7.2.0 | 已變更:分組引入命名空間時,允許行尾添加多余的逗號分隔符。 |
7.2.0 | 已變更:參數類型擴展。 現在可以省略來自重寫方法和從接口實現的參數類型。 |
7.2.0 | 已變更:當一個抽象類(abstract class)繼承另一個抽象類時,抽象的方法現在可以被覆寫。 |
7.1.0 |
已變更:增加系統(tǒng)保留關鍵字 void 和 iterable ,不允許做為
classes、interfaces、traits 的名稱。
|
7.1.0 | 增加:類常量增加了 訪問控制(可見性)。 |
7.0.0 | 廢棄:對未聲明為靜態(tài)的方法(Static)的靜態(tài)調用。 |
7.0.0 | 廢棄:PHP 4 風格的構造函數 constructor 已被廢棄。 |
7.0.0 | 增加: use 組聲明:同一個命名空間導入的類、函數、常量現在可以組合在一個 use 語句中。 |
7.0.0 |
增加:使用 new class 語法來支持
匿名類。
|
7.0.0 | 不兼容:Iterating over a non-Traversable object will now have the same behaviour as iterating over by-reference arrays. |
7.0.0 | 已變更:traits 里定義兼容的屬性不再產生錯誤信息。 |
5.6.0 | 增加: __debugInfo() 方法。 |
5.5.0 | 增加: ::class 魔法常量。 |
5.5.0 | 增加: finally 來處理異常。 |
5.4.0 | 增加: traits。 |
5.4.0 | 已變更:如果一個抽象 類定義了 構造函數 的簽名,它將必須被實現。 |
5.3.3 | 已變更: 命名空間 中和類同名的方法不再被作為 構造函數。這個變更不影響非命名空間中的類。 |
5.3.0 | 已變更:類實現接口的方法所具有的默認值不再需要和接口的默認值一致。 |
5.3.0 |
已變更: 現在它也能夠通過一個變量來引用一個類(例如,echo $classname::constant; )。
這個變量的值不能是一個保留關鍵詞(比如,self 、parent 或 static )。
|
5.3.0 |
已變更: 如果重載方法被定義為 static 將導致一個 E_WARNING 級別的錯誤。
同時它也需要強制使用 public 的可見性。
|
5.3.0 | 已變更: 在 5.3.0 之前的版本,__autoload() 函數里拋出的異常不能被 catch 塊結構捕獲,并會導致一個致命錯誤。 現在在一個前提下 catch 塊能夠捕獲 __autoload 函數中拋出的錯誤。如果拋出一個自定義異常,這個自定義異常的類必須是可用的。否則 __autoload 函數可能遞歸自動加載這個自定義異常類。 |
5.3.0 | 新增: __callStatic 方法。 |
5.3.0 | 新增: heredoc 和 nowdoc 支持類的 常量 和屬性的定義。 注意:heredoc 值必須和雙引號字符串遵循同樣的規(guī)則(比如,變量將被替換)。 |
5.3.0 | 新增: 后期靜態(tài)綁定。 |
5.3.0 | 新增: __invoke 方法。 |
5.2.0 |
已變更:__toString 方法僅在直接與 echo 或 print 使用時被調用。但是現在它能在任何字符串上下文被調用(比如在 printf() 中使用 %s ),但不是在其他類型的上下文被調用(例如 %d 修飾符)。
自 PHP 5.2.0 起,將不具有 __toString 方法的對象轉化為字符串將導致一個 E_RECOVERABLE_ERROR 級別的錯誤。
|
5.1.3 |
已變更:在 PHP 5 之前的版本,var 的使用已被廢棄,并將產生一個 E_STRICT 級別的錯誤。現在它不再被廢棄,因此也不會產生錯誤。
|
5.1.0 | 已變更:現在 __set_state 靜態(tài)方法在 var_export() 導出類時會被調用。 |
5.1.0 | 新增:__isset 和 __unset 方法。 |