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, 可调用|字符串|null $handler): true

为 XML 解析器 parser 设置处理指令 (PI) 处理程序函数。

处理指令具有以下格式

<?target
data
?>

注意

PHP 代码由 <?php 处理指令分隔。因此,可以在 XML 文档中包含 PHP 代码。但是,PI 结束标记 (?>) 不能作为数据的一部分。如果 PI 结束标记作为嵌入的 PHP 代码的一部分存在,则其余的 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, 字符串 $target, 字符串 $data): void
parser
调用处理程序的 XML 解析器。
target
处理指令目标。
data
处理指令数据。

返回值

始终返回 true

变更日志

版本 描述
8.4.0 将非 可调用 字符串 传递给 handler 现已弃用,请对方法使用适当的可调用,或使用 null 重置处理程序。
8.4.0 现在在设置处理程序时检查 handler 是否为 可调用,而不是在调用时检查。
8.0.0 parser 现在期望一个 XMLParser 实例;之前,期望一个有效的 xml 资源
添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top