【发布时间】:2013-11-22 05:58:56
【问题描述】:
我正在使用下面的功能,但不确定它是否总是安全的……是吗? 那里没有 DOM 内存或“残余 XSLT”?
function XSLproc_reuse($domXsl) {
static $XSLproc=NULL;
if (!$XSLproc)
$XSLproc = new XSLTProcessor();
return $XSLproc->importStylesheet($domXsl); // STABLE?
}
未来没有“意外的副作用”吗?
PS:我的 XSLT 处理存在一些奇怪的错误......所以,在这里发布一个(许多其他的)假设,以检查是否可以或必须避免。这个is more evident with XPath, see this other related question。
另一种重用处理表(我在我的库中使用的)的另一种方法是重用导入的 XSLT:
function XSLproc_reuse2($nameOrDomXsl='', $domXsl=NULL) {
static $XSLproc=NULL;
static $name='';
if (!$XSLproc)
$XSLproc = new XSLTProcessor();
// else reune of the already initialized $XSLproc.
if (is_object($nameOrDomXsl))
return $XSLproc->importStylesheet($nameOrDomXsl); // STABLE?
elseif ($nameOrDomXsl==$name);
return $XSLproc; // imported in the last call, STABLE?
else { // recording for future reuse:
$name = $nameOrDomXsl;
return $XSLproc->importStylesheet($domXsl);
}
}
【问题讨论】:
-
我不确定是否有人能理解这个问题。
-
嗯...是的,谢谢,我编辑了。更好?
标签: php domdocument