PHP Conference Japan 2024

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_notation_decl_handler設定標記宣告處理器

說明

xml_set_notation_decl_handler(XMLParser $parser, callable|string|null $handler): true

設定 XML 解析器 parser 的標記宣告處理函式。

標記宣告是文件 DTD 的一部分,格式如下:

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
有關標記宣告的定義,請參閱 » XML 1.0 規範的第 4.7 節

參數

parser

XML 解析器。

handler

如果傳入 null,處理函式將會重置為預設狀態。

警告

空字串也會重置處理函式,但自 PHP 8.4.0 起已棄用。

如果 handler 是一個 callable,則該 callable 將被設定為處理函式。

如果 handler 是一個 string,它可以是用 xml_set_object() 設定的物件之方法名稱。

警告

自 PHP 8.4.0 起已棄用。

警告

從 PHP 8.4.0 開始,會在設定處理函式時檢查 callable 是否有效,而不是在呼叫它時檢查。這表示必須在將方法字串設定為回呼之前呼叫 xml_set_object()。然而,由於此行為也自 PHP 8.4.0 起已棄用,因此建議改用適當的 callable 作為方法。

處理函式的簽章必須是

handler(
    XMLParser $parser,
    string $notation_name,
    string|false $base,
    string $system_id,
    string|false $public_id
): void
parser
呼叫處理函式的 XML 解析器。
notation_name
這是標記的名稱,根據上述標記格式。
base
這是用於解析標記宣告的系統識別碼 (system_id) 的基礎。
system_id
外部標記宣告的系統識別碼。
public_id
外部標記宣告的公開識別碼。

返回值

永遠返回 true

更新日誌

版本 說明
8.4.0 傳遞非 callablestringhandler 現已棄用,請使用方法的正確 callable,或使用 null 重置處理函式。
8.4.0 現在會在設定處理函式時檢查 handler 作為 callable 的有效性,而不是在呼叫它時檢查。
8.0.0 parser 參數現在需要一個 XMLParser 實例;先前需要的是一個有效的 xml 資源
新增註釋

使用者貢獻的註釋

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