Я получаю уведомление и предупреждение здесь, а не ошибку. Мой код по-прежнему работает. Просто хотелось узнать, может ли кто-нибудь понять, почему я получаю уведомление и предупреждение.
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.
попробуйте это некоторое время, когда он будет работать.
$campaign['settings']['email_list']
Я думаю, вы можете получить это уведомление из-за возможной неинициализации (возможно, null
значения), назначенной внутреннему объекту кампании $campaign->settings
. Убедитесь, что с параметром var_dump($campaign->settings)
существует реальное значение свойства перед строкой с функцией in_array
.
var_dump($campaign->settings)
выводит `object (stdClass) # 14 (7) {[" email_list "] => array (2) {[0] => string (19)" [email protected] "[1 ] => string (19) "[email protected]"} "}
$campaign
был Array, а его элементомsettings
был Array. Поскольку я имею дело с объектами, это конкретное решение не применимо.