2013-02-11 109 views

回答

66

事实证明,作者错过了一个非常简单的修复方法和一般的良好实践,您应该在尝试设置属性之前始终初始化对象。这个简单的修复方法就是在错误发生之前,通过正在尝试访问的变量添加new StdClass;调用。

$items[$i] = new StdClass; 
$items[$i]->title = $crs_post_title; 

即第一线将解决从显示出来的警告。

这也将修复/components/com_community/models/activities.php on line 387中的问题,并进行以下修复。

$commentsResult[$comment->type . '-' . $comment->contentid] = new StdClass; 
$commentsResult[$comment->type . '-' . $comment->contentid]->_comment_count = 0; 
+3

如果您不知道整个代码,最好为创建行添加一个条件,因为警告可能是间接的。例如: if(!is_object($ items [$ i])){$ items [$ i] = new stdClass;} $ items [$ i] - > title = $ crs_post_title; – 2015-01-13 22:59:26

+0

你的意思是实例化。未初始化。 – Matth3w 2017-04-05 06:48:48

+1

@Mark Tomlin我有一个类似的问题,现在已经解决了 – 2017-07-07 12:34:14