PHP Conference Japan 2024

其他變更

SAPI 模組的變更

CLI

在沒有 readline 擴充 的情況下使用 -a 現在將導致錯誤。先前,沒有 readline 的 -a 與呼叫沒有任何參數的 php 的行為相同,除了列印額外的 "互動模式已啟用" 訊息。此模式*不是*互動式的。

PHPDBG

phpdbg 的遠端功能已被移除。

已變更的函式

核心

用於 foreachvar_dump()serialize()、物件比較等的屬性順序已變更。現在,屬性會根據它們的宣告和繼承自然排序。在基底類別中宣告的屬性將會在子類別屬性之前。

這個順序與 zend_object 結構中屬性的內部佈局一致,並重複了 default_properties_table[]properties_info_table[] 中的順序。舊的順序沒有被記錄,是由於類別繼承的實作細節造成的。

過濾器

FILTER_FLAG_ALLOW_OCTAL 標記的 FILTER_VALIDATE_INT 過濾器現在接受帶有前導八進位字首 ("0o"/"0O") 的八進位字串。

GMP

所有 GMP 函式現在接受帶有前導八進位字首 ("0o"/"0O") 的八進位字串。

PDO ODBC

使用 PDO::ATTR_SERVER_INFOPDO::ATTR_SERVER_VERSIONPDO::getAttribute() 現在會傳回值,而不是拋出 PDOException

反射

ReflectionProperty::setAccessible()ReflectionMethod::setAccessible() 不再有任何作用。現在透過 Reflection 永遠可以存取屬性和方法。

標準

syslog() 現在是二進位安全的。

擴充套件的其他變更

GD

透過傳遞 IMG_WEBP_LOSSLESS 作為品質,imagewebp() 現在可以進行無損 WebP 編碼。

僅當使用的 libgd 支援無損 WebP 編碼時,才會定義此常數。

MySQLi

連結 libmysqlclient 時,現在可以使用 mysqli_stmt::next_result()mysqli::fetch_all()

OpenSSL

  • OpenSSL 擴充套件 現在至少需要 OpenSSL 1.0.2 版。

  • 現在支援 OpenSSL 3.0。請注意,許多加密演算法預設不再啟用(舊版提供者的一部分),而且參數驗證(例如最小金鑰大小)現在更嚴格。

Phar

  • 現在預設使用 SHA256 進行簽章。

  • 新增了對 OpenSSL_SHA256 和 OpenSSL_SHA512 簽章的支援。

SNMP

  • 新增了對安全性協定的 SHA256 和 SHA512 支援。

標準

--with-password-argon2 現在使用 pkg-config 來偵測 libargon2。因此,現在應該使用 PKG_CONFIG_PATH 指定替代的 libargon2 位置。

INI 檔案處理的變更

  • log_errors_max_len INI 指令已被移除。自 PHP 8.0.0 起,它不再有任何作用。

  • 現在可以在引號字串中逸出前導的美元符號:"\${" 現在會被解釋為內容為 ${ 的字串。

  • 雙引號字串中的反斜線現在會更一致地被視為逸出字元。以前,"foo\\" 後面接著換行符以外的內容不被視為已終止的字串。現在它被解釋為內容為 foo\ 的字串。但是,作為例外,字串 "foo\" 後面接著換行符將繼續被視為內容為 foo\ 的有效字串,而不是未終止的字串。這個例外是為了支援對 Windows 檔案路徑(例如 "C:\foo\")的單純使用。

新增註解

使用者貢獻的註解

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