如果沒有安裝 readline 擴(kuò)展,使用
-a 選項(xiàng)現(xiàn)在將導(dǎo)致錯(cuò)誤。在之前,如果沒有 readline 擴(kuò)展的話 -a
與直接無參數(shù)調(diào)用 php 的表現(xiàn)一樣,除了額外顯示一行
"Interactive mode enabled"
消息。這個(gè)模式非交互模式。
phpdbg 的遠(yuǎn)程功能已經(jīng)被移除。
在 foreach、var_dump() 、序列化()、對(duì)象對(duì)比等場景中屬性的順序發(fā)生了改變。 現(xiàn)在,屬性將根據(jù)它們的聲明與繼承進(jìn)行排序,在基類中聲明的屬性將排在子類屬性之前。
這個(gè)順序與 zend_object
結(jié)構(gòu)中屬性的內(nèi)部布局保持一致,并且重復(fù)了
default_properties_table[]
和 properties_info_table[]
中的順序。舊的順序沒有被記錄下來,是由類的繼承實(shí)現(xiàn)細(xì)節(jié)造成的。
FILTER_VALIDATE_INT
過濾器的 FILTER_FLAG_ALLOW_OCTAL
標(biāo)識(shí)現(xiàn)在接受帶八進(jìn)制前綴("0o"
/"0O"
)的八進(jìn)制字符串。
所有的 GMP 函數(shù)現(xiàn)在接受帶八進(jìn)制前綴(
"0o"
/"0O"
)的八進(jìn)制字符串。
帶著 PDO::ATTR_SERVER_INFO
和
PDO::ATTR_SERVER_VERSION
常量的
PDO::getAttribute()
方法現(xiàn)在返回的是值而不是拋出 PDOException 異常。
ReflectionProperty::setAccessible() 和 ReflectionMethod::setAccessible() 將不再起作用。屬性和方法現(xiàn)在總被認(rèn)為是能夠通過反射訪問的。
syslog() 現(xiàn)在是二進(jìn)制安全的。
imagewebp() 現(xiàn)在可以通過傳遞 IMG_WEBP_LOSSLESS
作為質(zhì)量來實(shí)現(xiàn)無損的 WebP 編碼了。
這個(gè)常量只有在所使用的 libgd 支持無損 WebP 編碼的情況在才會(huì)被定義。
在連接 libmysqlclient 時(shí),mysqli_stmt::next_result() 和 mysqli::fetch_all() 現(xiàn)在可以使用了。
OpenSSL 擴(kuò)展 現(xiàn)在至少需要 OpenSSL 1.0.2 版本。
現(xiàn)在已經(jīng)支持 OpenSSL 3.0 了。請(qǐng)注意許多密碼算法(部分老的提供者)不再是默認(rèn)啟用的,以及參數(shù)校驗(yàn)(例如:最小秘鑰長度)比以前更加嚴(yán)格了。
現(xiàn)在簽名的默認(rèn)算法為 SHA256。
簽名算法增加了對(duì) OpenSSL_SHA256 和 OpenSSL_SHA512 的支持。
為安全協(xié)議增加了對(duì) SHA256 和 SHA512 的支持。
--with-password-argon2
現(xiàn)在使用 pkg-config 來檢測
libargon2。因此現(xiàn)在應(yīng)該使用 PKG_CONFIG_PATH
來修改 libargon2 的位置。
INI 配置項(xiàng) log_errors_max_len 已經(jīng)被移除。從 PHP 8.0.0 開始將不再起作用。
一個(gè)在引用字符串中的前置美元符號(hào)現(xiàn)在可以被轉(zhuǎn)義:"\${"
將會(huì)被解釋為內(nèi)容包含 ${
的字符串。
雙引號(hào)內(nèi)的字符串中反斜線現(xiàn)在被更一致地視為轉(zhuǎn)義字符。之前 "foo\\"
的后面如果是除換行之外的其他字符是不被視為一個(gè)終止字符串的?,F(xiàn)在,它被解釋成一個(gè)內(nèi)容為
foo\
的字符串。然而有一個(gè)例外的地方是后面跟著換行符的字符串 "foo\"
將繼續(xù)被視為一個(gè)有效的、內(nèi)容為 "foo\" 的字符串,而不是一個(gè)還沒有結(jié)束的字符串。這個(gè)例外的存在是為了天然支持 Windows 文件路徑的使用,如
"C:\foo\"
。