PHP 物件導向程式設計模型的變更記錄於此。這些功能的說明和其他注意事項記錄在物件導向程式設計模型文件中。
版本 | 說明 |
---|---|
8.4.0 | 新增:支援延遲物件。 |
8.1.0 | 新增:類別常數支援 final 修飾符。此外,介面常數預設變為可覆寫。 |
8.0.0 | 新增:支援nullsafe 運算子 ?-> 來存取可能為 null 的物件的屬性和方法。 |
7.4.0 | 變更:現在可以在 __toString() 中拋出例外。 |
7.4.0 | 新增:支援有限的返回類型協變以及參數類型逆變。只有在使用自動載入時才能完整支援變異數。在單一檔案內,只允許非循環類型參考。 |
7.4.0 | 新增:現在可以為類別屬性指定類型。 |
7.3.0 | 不相容:不再支援使用非 int 鍵的 Traversable 物件進行參數拆解。此行為並非預期,因此已移除。 |
7.3.0 | 不相容:在先前的版本中,可以透過指定參考來區分靜態屬性。此功能已移除。 |
7.3.0 | 變更:instanceof 運算子現在允許使用字面值作為第一個運算元,在這種情況下,結果永遠是 false 。 |
7.2.0 | 已棄用:__autoload() 方法已棄用,建議使用 spl_autoload_register()。 |
7.2.0 | 變更:以下名稱不能用於命名類別、介面或特性:object 。 |
7.2.0 | 變更:現在可以在命名空間的群組使用語法中添加尾隨逗號。 |
7.2.0 | 變更:參數類型擴展。現在可以省略覆寫方法和介面實作中的參數類型。 |
7.2.0 | 變更:當一個抽象類別繼承另一個抽象類別時,現在可以覆寫抽象方法。 |
7.1.0 | 變更:以下名稱不能用於命名類別、介面或特性:void 和 iterable 。 |
7.1.0 | 新增:現在可以指定類別常數的存取權限。 |
7.0.0 | 已棄用:對非靜態方法進行靜態呼叫。 |
7.0.0 | 已棄用:PHP 4 風格的 建構子。也就是與其定義所在的類別同名的方法。 |
7.0.0 | 新增:群組 use 宣告:從同一個命名空間導入的類別、函式和常數現在可以組合在單個 use 陳述式中。 |
7.0.0 | 新增:已透過 new class 新增對 匿名類別 的支援。 |
7.0.0 | 不相容:迭代非 Traversable 的 物件 現在將與迭代傳址 陣列 的行為相同。 |
7.0.0 | 變更:在兩個使用的 特性 中定義(相容的)屬性不再觸發錯誤。 |
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 | 變更:如果魔術 多載 方法被宣告為 靜態,則會發出 E_WARNING 等級的錯誤。它也強制執行公開可見性需求。 |
5.3.0 | 變更:在 5.3.0 之前,在 __autoload() 函式中拋出的例外無法在 catch 區塊中捕獲,並且會導致致命錯誤。現在,在 __autoload 函式中拋出的例外可以在 catch 區塊中捕獲,但有一個條件。如果拋出自訂例外,則必須提供自訂例外類別。 __autoload 函式可以遞迴地自動載入自訂例外類別。 |
5.3.0 | 新增:__callStatic 方法。 |
5.3.0 | 新增:類別 const 和屬性定義支援 heredoc 和 nowdoc。注意:heredoc 值必須遵循與雙引號字串相同的規則(例如,其中不能包含變數)。 |
5.3.0 | 新增:延遲靜態綁定。 |
5.3.0 | 新增:__invoke() 方法。 |
5.2.0 | 變更:__toString() 方法以前僅在與 echo 或 print 直接組合時才會被呼叫。但現在,它會在任何 字串 上下文中被呼叫(例如,在使用 %s 修飾符的 printf() 中),但在其他類型上下文中則不會被呼叫(例如,使用 %d 修飾符)。從 PHP 5.2.0 開始,將沒有 __toString 方法的 物件 轉換為 字串 會發出 E_RECOVERABLE_ERROR 等級的錯誤。 |
5.1.3 | 變更:在以前的 PHP 5 版本中,使用 var 被認為是不建議使用的,並且會發出 E_STRICT 等級的錯誤。現在它不再是不建議使用的,因此不會發出錯誤。 |
5.1.0 | 變更:現在會為 var_export() 匯出的類別呼叫 __set_state() 靜態方法。 |
5.1.0 | 新增:__isset() 和 __unset() 方法。 |