0

我有一个仅由静态方法组成的类。我想注册该类以便 XSLT 引擎可以使用它。据我所知XSLTProcessor::registerPHPFunctions(),要么注册所有类和函数,除非第一个参数$restrict被传递并且第一个参数只采用字符串或数组中的方法名称。如何将整个类注册到 XSLT,以便可以从 xslt 页面访问类的所有静态方法。

4

1 回答 1

2

假设您有一个名为 的类Foo,您可以使用如下代码获取所有类方法的数组:

function addClassPrefix($name) {
  return "Foo::$name";
}
$names = array_map("addClassPrefix", get_class_methods("Foo"));

注意需要在每个方法名前添加类名作为前缀。

然后,您可以像这样简单地注册整个数组:

$proc = new XSLTProcessor();
$proc->registerPHPFunctions($names);
于 2013-06-27T16:33:05.017 回答