PHP Conference Japan 2024

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_end_namespace_decl_handler设置结束命名空间声明处理程序

描述

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

设置一个处理程序,在离开命名空间声明的范围时调用。对于每个命名空间声明,在声明该命名空间的元素的结束标签的处理程序之后,都会调用此处理程序。

注意

libXML 不支持此事件,因此不会调用已注册的处理程序。

参数

parser

XML 解析器。

handler

如果传递了null,则处理程序将重置为其默认状态。

警告

空字符串也会重置处理程序,但这自 PHP 8.4.0 起已弃用。

如果 handler 是一个 callable,则该可调用对象将设置为处理程序。

如果 handler 是一个 string,则它可以是使用 xml_set_object() 设置的对象的方法名称。

警告

自 PHP 8.4.0 起已弃用。

警告

自 PHP 8.4.0 起,在设置处理程序时会检查可调用对象是否有效,而不是在调用时检查。这意味着必须在将方法字符串设置为回调之前调用 xml_set_object()。但是,由于此行为自 PHP 8.4.0 起也已弃用,因此建议改为使用正确的 callable 来表示该方法。

处理程序的签名必须为

handler(XMLParser $parser, string|false $prefix)
parser
调用处理程序的 XML 解析器。
prefix
前缀是用于在 XML 对象中引用命名空间的字符串。如果不存在前缀,则为false

返回值

始终返回true

变更日志

版本 描述
8.4.0 将非 callable string 传递给 handler 现已弃用,请对方法使用正确的可调用对象,或使用null重置处理程序。
8.4.0 现在在设置处理程序时会检查 handler 作为 callable 的有效性,而不是在调用时检查。
8.0.0 parser 现在期望一个 XMLParser 实例;以前,期望一个有效的 xml resource

参见

添加注释

用户贡献注释

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