对象属性的值是一个数组。得到通知/警告说不然

时间:2015-01-10 05:28:54

标签: php arrays object warnings notice

我在这里得到通知警告,而不是错误。我的代码仍然有效。只是想看看是否有人能够弄清楚为什么我收到了通知和警告。

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可以输出相当多的信息,但这是重要的部分:

Campaign Object
{
    [settings] => stdClass Object
        (
            [email_list] => Array
                (
                    [0] => support@domain.com
                    [1] => customer@domain.com
                )
        )
}

显然,$ campaign-> settings-> email_list是一个数组。为什么我会收到通知和警告呢?直接在第152行上方创建$campaign

2 个答案:

答案 0 :(得分:0)

我认为您可能会收到此通知,因为可能会将未初始化(可能是null值)分配给$campaign->settings广告系列的内部对象。 请确保var_dump($campaign->settings)使用in_array函数前的属性的实际价值是什么。

答案 1 :(得分:0)

试试这段时间它会起作用。

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