修复'从空值创建默认对象' PHP中的警告

时间:2014-08-08 14:37:32

标签: php joomla joomla2.5 php-5.5

我最近从我的开发服务器上传了一个Joomla 2.5站点到我们的主机,并发现我们站点中的一个扩展使用的PHP代码在PHP 5.5中不再“可接受”。

  

警告:在第36行从空值... / helper.php创建默认对象

由于我只有一个错误,我想修复php而不是简单地隐藏警告。产生错误的相关代码行是:

$lists[$i]->id = $row->id;

我知道我应该在错误发生之前添加一个新的StdClass;调用,并在此帖How to fix 'Creating default object from empty value' warning in PHP

中根据Mark Tomlin的回复尝试访问该变量

然而,作为一个php newb,我不确定下面的代码会是什么样子。

{
public static function getList($params)
{

    $items = modArticlesLatestHelper::getList($params);

    $text_length = intval($params->get( 'preview_count', 200) );
    $tags       = $params->get('strip_tags', "a,i,br");

    $i=0;
    $lists  = array();
    foreach ( $items as $row )
    {
        //process content plugins
        $text = JHTML::_('content.prepare',$row->introtext);
        $lists[$i]->id = $row->id;
        $lists[$i]->thumb = self::getThumb($row->introtext,$params->get('thumb_width',160));
        $lists[$i]->created = $row->created;
        $lists[$i]->modified = $row->modified;
        $lists[$i]->link = $row->link;
        $lists[$i]->title = htmlspecialchars( $row->title );
        $lists[$i]->introtext = self::prepareContent( $text, $text_length, $tags);
        $i++;
    }

    return $lists;
}

提前感谢您的建议,想法和帮助。

1 个答案:

答案 0 :(得分:4)

在设置属性

之前创建对象
$lists[$i] = new stdClass();
$lists[$i]->id = $row->id;

或单线解决方案

$lists[$i] = (object)array('id' => $row->id);