php - 为什么反序列化嵌套在 Wordpress 核心中的另一个反序列化函数中?

标签 php wordpress serialization recursion

我正在查看 Wordpress 核心,我发现了这个函数:

function unserialize ( $data ) {
    return unserialize( $data );
}

首先,我什至不明白为什么要定义 unserialize,因为它是一个 native php 函数。其次,既然它是递归定义的,没有任何条件停止无限递归,这到底是怎么回事?

给我一​​根骨头。我是这方面的新手。

最佳答案

那必须是类中的方法定义,例如:

class SomeClass
{
    function unserialize($data) 
    { 
        return unserialize($data);
    }

    // ...
}

否则你会收到一个 fatal error ,提示你不能重新声明 unserialize()

它所做的只是向类中添加一个unserialize() 方法。然后,此方法调用 PHP 中的 native unserialize() 函数。看起来很傻,但是,我没有写 Wordpress。


我相信我找到了有问题的方法:wp-includes/rss.php (第 783 行)。它确实是 RSSCache 类的一个方法。

我想他们将来可能想要编写自己的序列化例程和/或 RSSCache 的某些子类有自己的 serialize()反序列化()

关于php - 为什么反序列化嵌套在 Wordpress 核心中的另一个反序列化函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12732047/

相关文章:

php - 如何根据 mysql 中以前的条目更新表

wordpress - 如何设置 WooCommerce 每件商品的运费

jquery - 发布数组 jquery 序列化

wordpress - 托管在 Wordpress 上的网站远程向其他服务器发送请求

使用 Java Servlet 的 Java 序列化类对象

php - jQuery 序列化从 MySQL 动态创建的复选框

php - 请求特定的每应用发布隐私设置

php - 如果表有嵌套记录,我如何从 mysql 表中获取主要值

php - 需要一些关于 PHP/mysql 错误处理的建议

mysql - 数据库查询以根据上次抓取日期获得最低价格