2024 日本 PHP 研討會

其他變更

PHP 核心

Set(raw)cookie 接受 $option 參數

setcookie()setrawcookie() 現在也支援以下簽章

setcookie(字串 $name, 字串 $value = "", 陣列 $options = []): 布林值
其中 $options 是一個關聯式陣列,可以包含以下鍵值:"expires""path""domain""secure""httponly""samesite"

新的 Syslog ini 指令

如果 error_log 設定為 syslog,則已新增以下 ini 指令來自訂記錄:

syslog.facility
指定記錄訊息的程式類型。
syslog.filter
指定用於篩選已記錄訊息的篩選器類型,支援的篩選器類型為:allno-ctrlascii。從 PHP 7.3.8 開始,也提供 raw,恢復先前 PHP 版本中 syslog 的行為。此篩選器也會影響 syslog() 的呼叫。
syslog.ident
指定附加到每條訊息之前的識別字串。

垃圾回收

循環式垃圾回收 已增強,可能會顯著提升效能。

其他

var_export() 現在將 stdClass 物件匯出為轉換成物件的陣列 ((object) array( ... )),而不是使用不存在的方法 stdClass::__setState()

debug_zval_dump() 已變更為以與 var_dump() 相同的方式顯示遞迴陣列和物件。現在,它不會顯示兩次。

array_push()array_unshift() 現在也可以使用單一參數呼叫,這對於展開運算子來說特別方便。

互動式 PHP 除錯器

已移除未使用的常數 PHPDBG_FILEPHPDBG_METHODPHPDBG_LINENOPHPDBG_FUNC

FastCGI 程序管理器

getallheaders() 函式現在也可用。

用戶端 URL 函式庫

現在需要 libcurl ≥ 7.15.5。

資料篩選

FILTER_VALIDATE_FLOAT 現在也支援 thousand 選項,該選項定義允許的千位分隔符號字元集。預設值 ("',.") 與舊版 PHP 完全向後相容。

已新增 FILTER_SANITIZE_ADD_SLASHES 作為 magic_quotes 篩選器 (FILTER_SANITIZE_MAGIC_QUOTES) 的別名。magic_quotes 篩選器將在未來版本的 PHP 中移除。

FTP

預設傳輸模式已變更為 binary(二進位)。

國際化函式

當 PHP 與 ICU ≥ 56 連結時,Normalizer::NONE 已被棄用。

引進 Normalizer::FORM_KC_CF 作為 Normalizer::normalize() 的參數,用於 NFKC_Casefold 正規化;當與 ICU ≥ 56 連結時可用。

JavaScript 物件標記 (JSON)

新增了一個旗標 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 已移除。

ODBC (統一)

已移除對 ODBCRouterBirdstep 的支援,包括 birdstep.max_links ini 指令。

OPcache

已移除 opcache.inherited_hack ini 指令。自 PHP 5.3.0 起,該值已被忽略。

OpenSSL

新增了 min_proto_versionmax_proto_version ssl 資料流選項,以及相關的 TLS 協定值常數。

正規表示式 (Perl 相容)

PCRE 擴充套件 已升級至 PCRE2,這可能會導致一些細微的行為變化(例如,類別中的字元範圍現在會被更嚴格地解釋),並擴充了現有的正規表示式語法。

preg_quote() 現在也會跳脫 '#' 字元。

Microsoft SQL Server 和 Sybase 函式 (PDO_DBLIB)

新增了屬性 PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS,可啟用自動跳過空結果集的功能。

新增了屬性 PDO::DBLIB_ATTR_TDS_VERSION,用於顯示 TDS 版本。

DATETIME2 資料行現在會被視為 DATETIME 資料行處理。

SQLite 函式 (PDO_SQLITE)

現在可以透過將新的 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 指令。

Tidy

現在也透明地支援基於 » tidyp 進行構建。由於 tidyp 沒有提供獲取發布日期的 API,tidy_get_release()tidy::getRelease() 在這種情況下會返回 'unknown'

XML 解析器

如果擴充套件是基於 libxml 構建的,則 xml_set_external_entity_ref_handler() 回呼的返回值將不再被忽略。以前,返回值會被忽略,並且解析永遠不會停止。

Zip

不建議基於捆綁的 libzip 進行構建,但仍然可以通過在配置中添加 --without-libzip 來實現。

Zlib 壓縮

已新增 compress.zlib 包裝器 的 zlib/level 上下文選項,以便設定所需的壓縮級別。

新增註記

使用者提供的註記

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