PHP Conference Japan 2024

xml_set_processing_instruction_handler

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

xml_set_processing_instruction_handler設定處理指令 (PI) 的處理器

說明

xml_set_processing_instruction_handler(XMLParser $parser, callable|字串|null $handler): true

設定 XML 解析器 parser 的處理指令 (PI) 處理函式。

處理指令的格式如下:

<?target
data
?>

注意事項

PHP 程式碼是由 <?php 處理指令界定的。因此,XML 文件中可以包含 PHP 程式碼。但是,PI 結束標記 (?>) 不能是資料的一部分。如果嵌入的 PHP 程式碼中存在 PI 結束標記,則其餘的 PHP 程式碼和「真正的」PI 結束標記將被視為字元資料。

參數

parser

XML 解析器。

handler

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

警告

傳入空字串也會重置處理器,但自 PHP 8.4.0 起已棄用。

如果 handler 是一個 可呼叫物件,則該可呼叫物件將被設定為處理器。

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

警告

自 PHP 8.4.0 起已棄用。

警告

自 PHP 8.4.0 起,會在設定處理器時檢查可呼叫物件是否有效,而不是在呼叫它時檢查。這表示必須在將方法字串設定為回呼之前呼叫 xml_set_object()。然而,由於此行為也自 PHP 8.4.0 起被棄用,因此建議改用正確的 可呼叫物件 作為方法。

處理器的簽名式必須為

handler(XMLParser $parser, string $target, string $data): void
parser
呼叫處理器的 XML 解析器。
target
處理指令目標。
data
處理指令資料。

返回值

永遠返回 true

更新日誌

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

使用者提供的註釋

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