2024 年 PHP Conference Japan

其他變更

核心變更

iterable 類型現在是內建的編譯時期別名,代表 array|Traversable。因此,與 iterable 相關的錯誤訊息現在將使用 array|Traversable。單個 iterable(和 ?iterable)的類型反射會被保留,以產生名稱為 iterableReflectionNamedType,然而,在聯集類型中使用 iterable 將會轉換為 array|Traversable

已傳送 Cookie 的日期格式現在是 'D, d M Y H:i:s \G\M\T';先前是 'D, d-M-Y H:i:s T'

SAPI 模組的變更

CLI

STDOUT、STDERR 和 STDIN 資料流在資源釋放時(通常是 CLI 結束時)不再關閉。但是,仍然可以使用 fclose() 等函式明確關閉這些資料流。

異動函式

核心

使用二進位安全字串比較的 strcmp()strcasecmp()strncmp()strncasecmp()substr_compare() 函式,當字串長度不相等時,不再保證返回 strlen($string1) - strlen($string2),現在可能返回 -11。不應依賴任何具體值,而應將返回值與 0 進行比較。

DBA

dba_open()dba_popen() 現在強制使用以下簽章:

dba_open(
    字串 $path,
    字串 $mode,
    ?字串 $handler = null,
    整數 $permission = 0644,
    整數 $map_size = 0,
    ?整數 $flags = null
): 資源|false

dba_fetch() 的選用跳過參數現在位於末尾,與 PHP 使用者端語義一致。其簽章現在為:

多載簽章仍然可以接受,但建議使用新的標準變體。

隨機

random_bytes()random_int() 現在在 CSPRNG 失敗時會拋出 \Random\RandomException。先前拋出的是普通的 \Exception

SPL(標準 PHP 程式庫)

iterator_to_array()iterator_count()iterator 參數已從 Iterator 擴展到 iterable,允許傳遞陣列。

其他擴展的變更

日期/時間

DatePeriod 的屬性現在已正確宣告。

Intl(國際化)

IntlBreakIteratorIntlRuleBasedBreakIteratorIntlCodePointBreakIteratorIntlPartsIteratorIntlCalendarCollatorIntlIteratorUConverterIntlDateFormatterIntlDatePatternGeneratorMessageFormatterResourceBundleSpoofcheckerIntlTimeZoneTransliterator 的實例不再可序列化。以前,它們可以被序列化,但反序列化會產生無法使用的物件或失敗。

MySQLi

已移除對 libmysql 的支援,且不再能使用 libmysql 編譯 mysqli。從現在起,mysqli 擴展只能使用 mysqlnd 編譯。所有 mysqlnd 中無法使用的 libmysql 功能都已移除。

OCI8

現在所需的最低 Oracle Client 程式庫版本為 11.2。

PCRE(Perl 相容正規表示式)

現在支援模式字串中的 NUL 字元 (\0)。

Session(工作階段)

在工作階段處於活動狀態或已發送輸出時嘗試更改 session.cookie_samesite INI 指令現在將會失敗並發出警告。這使行為與所有其他工作階段 INI 設定一致。

SQLite3

sqlite3.defensive 現在是 INI_USER

標準

getimagesize() 現在會回報 AVIF 影像的實際影像尺寸、位元數和通道數。先前,尺寸回報為 0x0,且位元數和通道數根本沒有回報。

Tidy

tidy 類別的屬性現在已正確宣告。而 tidyNode 類別的屬性現在已正確宣告為唯讀。

Zip

Zip 擴展已更新至 1.20.0 版,新增了以下方法:

INI 檔案處理的變更

已新增二進位 (0b/0B) 和八進位 (0o/0O) 前綴支援整數 INI 設定。以零 (0) 開頭的整數 INI 設定將繼續被解釋為八進位整數。

解析某些格式錯誤的值現在會觸發警告,而之前這些值會被忽略。為了向後相容,這些值的解釋方式沒有改變。這會影響以下設定:

新增註解

使用者貢獻的註解

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