未定义索引:php中的用户

未定义索引:php中的用户,php,laravel,laravel-5.1,Php,Laravel,Laravel 5.1,我有以下数组,它是从我的对象生成的 Laravel\Socialite\Two\User Object ( [token] => some token valuw [id] => 12345567769667 [nickname] => [name] => user name [email] => username@test.com [user] => Array (

我有以下数组,它是从我的对象生成的

Laravel\Socialite\Two\User Object
(
    [token] => some token valuw
    [id] => 12345567769667
    [nickname] => 
    [name] => user name
    [email] => username@test.com

    [user] => Array
        (
            [kind] => plus

            [gender] => male
            [emails] => Array
                (
                    [0] => Array
                        (
                            [value] => username@test.com
                            [type] => account
                        )

                )
        )
)
如果我尝试访问id昵称、姓名、电子邮件等

echo $user->id;
它显示输出。 如果我尝试访问

echo $user->user->gender;

然后它将抛出错误作为
未定义的索引用户

我如何访问性别和电子邮件价值

谢谢

试试这个:

 echo $user->user['gender'];
要访问电子邮件值,请执行以下操作:

$emailVal = [];
foreach($user->user['emails'] as $key => $val) {
  $emailVal[] = ['value' => $val['value'], 'type' => $val['type']];
}

print_r($emailVal);
或者,如果您只想访问电子邮件:

 echo $user->user['emails'][0]['value'];

$user
是一个
对象
用户
是一个
数组

if (property_exists($user, user) && !empty($user->user[gender])) {
  $user->user[gender]; // to access gender
  $user->user[emails]; // to access email
}

为避免出现通知和警告

@tester。请接受我的答案,如果它的工作。谢谢你当然可以。现在我在问完问题后必须等待11分钟。那么等待接受如何访问电子邮件值?您需要
foreach
循环。我会在我的回答中加上这一点谢谢。你的回答中只有一点小的更正。foreach($user->user['email']as$key=>$val)
if (property_exists($user, user) && !empty($user->user[gender])) {
  $user->user[gender]; // to access gender
  $user->user[emails]; // to access email
}