PHP Conference Japan 2024

向下不相容的變更

日期

DateTime::createFromImmutable() 現在的暫定回傳類型為 static,先前為 DateTime

DateTimeImmutable::createFromMutable() 現在的暫定回傳類型為 static,先前為 DateTimeImmutable

相對格式 中的 number 符號不再接受多個正負號,例如 +-2

ODBC

當同時傳遞連線字串和使用者名稱/密碼,且字串必須附加時,ODBC 擴充套件現在會對使用者名稱和密碼進行跳脫字元處理。以前,包含需要跳脫字元的值的使用者值可能會建立格式錯誤的連線字串,或從使用者提供的資料中注入值。跳脫字元規則應與 .NET BCL DbConnectionOptions 的行為相同。

PDO_ODBC

當傳遞連接字串時,PDO_ODBC 擴充功能現在也會對使用者名稱和密碼進行跳脫處理。詳情請參閱ODBC 擴充功能的變更

標準

如果所有路徑都受到 open_basedir 的限制,glob() 現在會返回一個空的 陣列。之前它會返回 false。此外,即使只有一部分路徑受到 open_basedir 的限制,現在也會發出警告。

FilesystemIterator::__construct():在 PHP 8.2.0 之前,FilesystemIterator::SKIP_DOTS 常數總是會被設定,而且無法停用。為了維持之前的行為,使用 flags 參數時必須明確設定該常數。 flags 參數的預設值並未修改。

strtolower()strtoupper()stristr()stripos()strripos()lcfirst()ucfirst()ucwords()str_ireplace() 不再受語系影響。它們現在執行 ASCII 大小寫轉換,如同語系設定為 "C" 一樣。這些函式的在地化版本可在 MBString 擴充功能 中找到。此外,array_change_key_case() 以及使用 SORT_FLAG_CASE 進行排序現在也使用 ASCII 大小寫轉換。

對於空的 字串str_split() 現在會返回一個空的 陣列。之前它會返回一個包含單個空字串項目的陣列。 mb_str_split() 不受此變更影響,因為它的行為原本就是如此。

SORT_REGULAR 旗標下,ksort()krsort() 現在使用標準的 PHP 8 規則進行數字字串比較。

var_export() 不再省略匯出類別的開頭反斜線,也就是說,這些現在是完全限定名稱。

標準 PHP 函式庫 (SPL)

以下方法現在強制執行其簽章

SplFileObject::hasChildren() 現在的暫定返回類型為 false,之前為 bool

SplFileObject::getChildren() 現在的暫定返回類型為 null,之前為 ?RecursiveIterator

現在,如果所有路徑都受到 open_basedir 的限制,GlobIterator 會返回一個空的 陣列。先前它會返回 false。此外,即使只有一部分路徑受到 open_basedir 的限制,現在也會發出警告。

新增註解

使用者提供的註解

此頁面沒有使用者提供的註解。
To Top