Значением свойства объекта является массив. Получение уведомления / предупреждения, говорящего иначе

Я получаю уведомление и Предупреждение здесь не ошибка. Мой код все еще работает. Просто хотел посмотреть, сможет ли кто-нибудь разобраться Зачем Я получаю уведомление и предупреждение.

Notice: Trying to get property of non-object in file.php on line 152

Warning: in_array() expects parameter 2 to be array, null given file.php on line 152

Строка 152 является оператором if ():

if($user->type == 'x' && in_array($user->email, $campaign->settings->email_list))
{ do stuff }

Я точно определил проблему $campaign объект. Использование print_r для $ кампании выводит довольно мало информации, но это важная часть:

Campaign Object
{
[settings] => stdClass Object
(
[email_list] => Array
(
[0] => [email protected]
[1] => [email protected]
)
)
}

Очевидно, $ campaign-> settings-> email_list является массивом. Почему тогда я получаю Уведомление и Предупреждение? $campaign создается непосредственно над линией 152.

0

Решение

Я думаю, что вы можете получить это уведомление из-за возможной неинициализации (может быть, null значение) присваивается $campaign->settings внутренний объект кампании.
Пожалуйста, убедитесь с var_dump($campaign->settings) какова реальная стоимость имущества перед строкой in_array функция.

0

Другие решения

Попробуйте это когда-нибудь, это будет работать.

$campaign['settings']['email_list']
0

По вопросам рекламы [email protected]