Создание объекта по умолчанию из пустого значения - воспламенитель кода - PullRequest
0 голосов
/ 06 мая 2019

Здравствуйте, я работаю над 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 голосов
/ 06 мая 2019

Кажется, что метод $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. Однако логика та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...