PHP Conference Japan 2024

xml_set_start_namespace_decl_handler

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

xml_set_start_namespace_decl_handler设置命名空间声明开始处理程序

描述

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

设置一个处理程序,在声明命名空间时调用。命名空间声明发生在开始标签内。但是,对于在该开始标签中声明的每个命名空间,命名空间声明开始处理程序会在开始标签处理程序之前被调用。

参数

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, string $uri): void
parser
调用处理程序的XML解析器。
prefix
前缀是用于在XML对象中引用命名空间的字符串。如果不存在前缀,则为false
uri
命名空间的统一资源标识符 (URI)。

返回值

始终返回true

变更日志

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

参见

添加注释

用户贡献的注释

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