setcookie() 和 setrawcookie() 現在也支援以下簽章
其中$options
是一個關聯式陣列,可以包含以下鍵值:"expires"
、"path"
、"domain"
、"secure"
、"httponly"
和 "samesite"
。
如果 error_log 設定為 syslog
,則已新增以下 ini 指令來自訂記錄:
all
、no-ctrl
和 ascii
。從 PHP 7.3.8 開始,也提供 raw
,恢復先前 PHP 版本中 syslog 的行為。此篩選器也會影響 syslog() 的呼叫。
循環式垃圾回收 已增強,可能會顯著提升效能。
var_export() 現在將 stdClass 物件匯出為轉換成物件的陣列 ((object) array( ... )
),而不是使用不存在的方法 stdClass::__setState()。
debug_zval_dump() 已變更為以與 var_dump() 相同的方式顯示遞迴陣列和物件。現在,它不會顯示兩次。
array_push() 和 array_unshift() 現在也可以使用單一參數呼叫,這對於展開運算子來說特別方便。
已移除未使用的常數 PHPDBG_FILE
、PHPDBG_METHOD
、PHPDBG_LINENO
和 PHPDBG_FUNC
。
getallheaders() 函式現在也可用。
現在需要 libcurl ≥ 7.15.5。
FILTER_VALIDATE_FLOAT
現在也支援 thousand
選項,該選項定義允許的千位分隔符號字元集。預設值 ("',."
) 與舊版 PHP 完全向後相容。
已新增 FILTER_SANITIZE_ADD_SLASHES
作為 magic_quotes
篩選器 (FILTER_SANITIZE_MAGIC_QUOTES
) 的別名。magic_quotes
篩選器將在未來版本的 PHP 中移除。
預設傳輸模式已變更為 binary
(二進位)。
當 PHP 與 ICU ≥ 56 連結時,Normalizer::NONE
已被棄用。
引進 Normalizer::FORM_KC_CF
作為 Normalizer::normalize() 的參數,用於 NFKC_Casefold
正規化;當與 ICU ≥ 56 連結時可用。
新增了一個旗標 JSON_THROW_ON_ERROR
,可以與 json_decode() 或 json_encode() 搭配使用。當發生錯誤時,這些函式會拋出新的 JsonException 異常,而不是設定透過 json_last_error() 和 json_last_error_msg() 取得的全局錯誤狀態。JSON_PARTIAL_OUTPUT_ON_ERROR
的優先順序高於 JSON_THROW_ON_ERROR
。
組態選項 --with-libmbfl 已移除。
已移除對 ODBCRouter
和 Birdstep
的支援,包括 birdstep.max_links
ini 指令。
已移除 opcache.inherited_hack
ini 指令。自 PHP 5.3.0 起,該值已被忽略。
新增了 min_proto_version
和 max_proto_version
ssl 資料流選項,以及相關的 TLS 協定值常數。
PCRE 擴充套件 已升級至 PCRE2,這可能會導致一些細微的行為變化(例如,類別中的字元範圍現在會被更嚴格地解釋),並擴充了現有的正規表示式語法。
preg_quote() 現在也會跳脫 '#'
字元。
新增了屬性 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
,可啟用自動跳過空結果集的功能。
新增了屬性 PDO::DBLIB_ATTR_TDS_VERSION
,用於顯示 TDS 版本。
DATETIME2 資料行現在會被視為 DATETIME 資料行處理。
現在可以透過將新的 PDO::SQLITE_ATTR_OPEN_FLAGS
屬性設定為 PDO::SQLITE_OPEN_READONLY
,以唯讀模式開啟 SQLite3 資料庫。
session_set_cookie_params() 現在也支援以下簽章
其中$options
是一個關聯式陣列,可以包含以下任一鍵值:"lifetime"
、"path"
、"domain"
、"secure"
、"httponly"
和 "samesite"
。相應地,session_get_cookie_params() 的回傳值現在也包含一個鍵值為 "samesite"
的元素。此外,還新增了 session.cookie_samesite
ini 選項,用於設定 Cookie 的 SameSite 指令預設值。預設值為 ""
(空字串),表示未設定 SameSite 指令。可以設定為 "Lax"
或 "Strict"
,以設定對應的 SameSite 指令。
現在也透明地支援基於 » tidyp 進行構建。由於 tidyp 沒有提供獲取發布日期的 API,tidy_get_release() 和 tidy::getRelease() 在這種情況下會返回 'unknown'
。
如果擴充套件是基於 libxml 構建的,則 xml_set_external_entity_ref_handler() 回呼的返回值將不再被忽略。以前,返回值會被忽略,並且解析永遠不會停止。
不建議基於捆綁的 libzip 進行構建,但仍然可以通過在配置中添加 --without-libzip 來實現。
已新增 compress.zlib 包裝器 的 zlib/level 上下文選項,以便設定所需的壓縮級別。