如何在PHP中修复"从空值创建默认对象"警告

Mar*_*lin 27 php warnings object

我从joomla安装中得到以下错误.

Warning: Creating default object from empty value in  /modules/mod_continuous_rss_scrolling/helper.php on line 54
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

Mar*_*lin 66

事实证明,作者错过了一个非常简单的修复和一般的好习惯,你应该在尝试设置属性之前始终初始化对象.对此的一个非常简单的解决方法就是new StdClass;在错误之前添加一个正在尝试访问的变量的调用.

$items[$i] = new StdClass;
$items[$i]->title   = $crs_post_title;
Run Code Online (Sandbox Code Playgroud)

第一行将修复警告显示.

这也可以/components/com_community/models/activities.php on line 387通过以下修复解决问题.

$commentsResult[$comment->type . '-' . $comment->contentid] = new StdClass;
$commentsResult[$comment->type . '-' . $comment->contentid]->_comment_count = 0;
Run Code Online (Sandbox Code Playgroud)

  • 如果你不知道整个代码,最好在创建行中添加一个条件,因为警告可能是间接的.例如:if(!is_object($ items [$ i])){$ items [$ i] = new stdClass;} $ items [$ i] - > title = $ crs_post_title; (3认同)