2024 年日本 PHP 研討會

已棄用功能

PHP 核心

動態屬性的使用

除非類別使用 #[\AllowDynamicProperties] 屬性選擇加入,否則建立動態屬性已被棄用。 stdClass 允許動態屬性。 __get()/__set() 魔術方法的使用不受此變更影響。可以透過以下方式解決動態屬性棄用警告:

  • 宣告屬性(建議)。
  • #[\AllowDynamicProperties] 屬性新增至類別(也適用於所有子類別)。
  • 如果需要將額外資料與不擁有的物件關聯,請使用 WeakMap

相對可呼叫物件

不為 $callable() 語法接受(但為 call_user_func() 接受)的可呼叫物件已被棄用。特別是:

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
這不影響正常的可呼叫方法,例如 "A::method"["A", "method"]

"${var}""${expr}" 風格的字串插值

"${var}""${expr}" 風格的字串插值已被棄用。請分別使用 "$var"/"{$var}""{${expr}}"

MBString 多位元組字串

在所有 MBString 函式中,使用 QPrintBase64UuencodeHTML-ENTITIES 等「文字編碼」已被棄用。與 MBString 支援的所有其他文字編碼不同,這些編碼編碼的不是 Unicode 字碼點序列,而是一系列原始位元組。當指定這些非編碼的其中一個時,大多數 MBString 函式的正確傳回值應該是什麼並不清楚。此外,PHP 具有所有這些編碼的獨立內建實作;例如,可以使用 convert_uuencode()/convert_uudecode() 處理 UUencode 編碼的資料。

SPL 標準 PHP 函式庫

內部方法 SplFileInfo::_bad_state_ex() 已被棄用。

標準

utf8_encode()utf8_decode() 已被棄用。

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top