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

0

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

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 проблему для объекта $campaign. Использование print_r on $ campaign выводит довольно много информации, но это важная часть:

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

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

Теги:
object
arrays
warnings

2 ответа

0

попробуйте это некоторое время, когда он будет работать.

$campaign['settings']['email_list']
  • 0
    Спасибо за попытку помочь! Это сработало бы только если бы $campaign был Array, а его элементом settings был Array. Поскольку я имею дело с объектами, это конкретное решение не применимо.
  • 1
    stackoverflow.com/questions/2476876/… проверьте эту ссылку, вы получите представление
0

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

  • 0
    Должен был включить это в мой оригинальный пост, но я уже сделал это. var_dump($campaign->settings) выводит `object (stdClass) # 14 (7) {[" email_list "] => array (2) {[0] => string (19)" [email protected] "[1 ] => string (19) "[email protected]"} "}
  • 0
    Извините, вы написали, что использовали print_r. Тем не менее, обратите внимание: попытка получить свойство non-object в file.php в строке 152 указывает в этом направлении. Это странно :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню