我一直在尋找通過WordPress的核心,我發現這個功能:爲什麼反序列化嵌套在Wordpress核心中的另一個反序列化函數中?
function unserialize ($data) {
return unserialize($data);
}
首先,我甚至不明白爲什麼反序列化一直以來是原始的PHP函數定義。其次,世界在這裏發生了什麼,因爲它遞歸地定義,沒有任何條件停止無限遞歸?
把我扔一根骨頭。我是這個東西的新手。
我一直在尋找通過WordPress的核心,我發現這個功能:爲什麼反序列化嵌套在Wordpress核心中的另一個反序列化函數中?
function unserialize ($data) {
return unserialize($data);
}
首先,我甚至不明白爲什麼反序列化一直以來是原始的PHP函數定義。其次,世界在這裏發生了什麼,因爲它遞歸地定義,沒有任何條件停止無限遞歸?
把我扔一根骨頭。我是這個東西的新手。
那一定是一個類的方法定義,如:
class SomeClass
{
function unserialize($data)
{
return unserialize($data);
}
// ...
}
否則你會得到一個致命的錯誤說你不能重新聲明unserialize()
。
它所做的就是增加一個unserialize()
方法的類。此方法然後在PHP中調用本地unserialize()
函數。似乎很愚蠢,但後來,我沒有寫Wordpress。
我相信我發現有問題的方法:wp-includes/rss.php
(線783)。這實際上是RSSCache
類的一種方法。
我想這是可能的,他們可能需要編寫自己的串行化例程在未來和/或RSSCache
一些子類都有自己的serialize()
和unserialize()
。
是一類或獨立內的功能? –
這是一個類中的方法定義。 – NullUserException
我的標準評論是你不應該質疑如何運作的語言。那條路就是瘋狂。 –