从空值创建默认对象-代码点火器

时间:2019-05-06 15:34:04

标签: php codeigniter-3

您好,我正在使用Codeigniter,并且尝试消除网站上的警告,但我屏蔽了:

$groups = array();

    if ($bannished_groups) {
        foreach ($bannished_groups as $k => $bannished_group) {
            $groups[$k] = $this->group_model->GetGroupByID($bannished_group->groupid);
            $groups[$k]->db = $bannished_group;
        }
    }

我有错误:

  

从空值创建默认对象

我试图声明:

$groups[$k]->db = new stdClass();

但是它不起作用,我读了其他答案,但是对我没有帮助..

1 个答案:

答案 0 :(得分:0)

方法$this->group_model->GetGroupByID($bannished_group->groupid);似乎并不总是返回对象,即使您认为它是:-)

如果它返回null,空字符串或false,则会出现该错误。

在尝试使用它之前,请先对其进行检查:

foreach ($bannished_groups as $k => $bannished_group) {
    // Get the object
    $obj = $this->group_model->GetGroupByID($bannished_group->groupid);

    if (!is_object($obj)) {
        // It's not an object, skip it and move on to the next
        continue;
    }

    $groups[$k] = $obj;
    $groups[$k]->db = $bannished_group;
}

这将确保您的$groups数组仅包含对象。如果无论如何仍要将其添加到数组,只需将对象直接存储在$groups[$k]中,而不是存储在$obj变量中。逻辑是一样的。