您好,我正在使用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();
但是它不起作用,我读了其他答案,但是对我没有帮助..
答案 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
变量中。逻辑是一样的。