在php中编写回调函数时传递参数(Laravel 5)

Jos*_*iro 1 php parameters callback laravel-5

我正在使用Laravel 5在php中编程.我有这段代码.

    $newUser = $this->create($request->all());
    $newUser->save();

    $newAccount = new Account(['user_id' => $newUser->getAttribute('id')]);
    $newAccount->save();

    Mail::send('emails.welcome', ['username' => $newUser->name, 'active_token' => $newUser->active_token], function($message)
    {
        $message->to($newUser->email, $newUser->name)->subject('Welcome');
    });
Run Code Online (Sandbox Code Playgroud)

这里的问题是我不知道如何在回调函数中传递"newUser"变量.由于范围不适用.那么,在编写回调函数时如何传递参数?为了在那个范围内使用它们?

谢谢

Ste*_*eve 7

使用php匿名函数,您可以包含父作用域中的变量use($variable):

 Mail::send(
    'emails.welcome', 
    ['username' => $newUser->name, 'active_token' => $newUser->active_token],
    function($message) use($newUser)
    {
        $message->to($newUser->email, $newUser->name)->subject('Welcome');
    });
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/functions.anonymous.php#example-195