我在查看wordpress核心,发现了这个函数:
function unserialize ( $data ) {
return unserialize( $data );
}
首先,我甚至不明白为什么unserialize被定义为一个本地php函数。第二,既然它是递归定义的,没有任何条件停止无限递归,那么这里到底发生了什么?
给我一根骨头。我是新手。
最佳答案
这必须是类中的方法定义,例如:
class SomeClass
{
function unserialize($data)
{
return unserialize($data);
}
// ...
}
否则,您将得到一个致命的错误,说您不能重新声明
unserialize()
。它所做的只是向类添加一个
unserialize()
方法。然后,此方法调用php中的nativeunserialize()
函数。看起来很傻,但后来,我没有写wordpress。我相信我找到了问题的方法:
wp-includes/rss.php
(第783行)。这确实是RSSCache
类的一种方法。我想他们可能希望在将来编写自己的序列化例程,并且/或者
RSSCache
的某些子类有自己的serialize()
和unserialize()
。