【问题标题】:Creating default object from empty value in my custom_functions.php从我的 custom_functions.php 中的空值创建默认对象
【发布时间】:2013-11-30 10:12:16
【问题描述】:

我不知道怎么回事,但我的主题向我显示了这个错误:

警告:在第 792 行的 /custom_functions.php 中从空值创建默认对象

我在第 792 行的 custom_functions.php 中找到了代码

    $update_transient->response = array_merge(!empty($update_transient->response) ? $update_transient->response : array(), $et_update_themes->response);

我需要做什么,解决它??

【问题讨论】:

    标签: php arrays database wordpress themes


    【解决方案1】:

    所以首先解释一下这条线是如何工作的。问号是一个三元运算符,使语句的工作方式如下:

    if(array_merge(!empty($update_transient->response)) {
        $update_transient->response = $update_transient->response;
    } else {
        $update_transient->response = array(), $et_update_themes->response);
    }
    

    (箭头表示从关联数组或对象实例中提取值)

    无论 if 语句如何流动,$update_transient->response 都被设置为某个值。 我敢打赌你的错误是因为$update_transient->response 为空。由于升级到 PHP 版本,您可能第一次看到此错误。

    您应该尝试在检查值是否为空之前添加 if 语句。如果是,则将其设置为stdClass

    if (!is_object($update_transient->response)) 
    {
        $update_transient->response = new stdClass;
    }
    

    (stdClass 是 PHP 的通用空类)

    【讨论】:

    • 我相信声明是这么说的if (!empty($update_transient->response)) { $update_transient->response = array_merge($update_transient->response, $et_update_themes->response); } else { $update_transient->response = array_merge(array(), $et_update_themes->response); }
    猜你喜欢
    • 2020-04-09
    • 1970-01-01
    • 2012-02-12
    • 2015-01-28
    • 2017-11-29
    • 2017-09-30
    • 2016-08-18
    • 2018-07-18
    • 2019-03-14
    相关资源
    最近更新 更多