如何将变量传递给匿名函数?

时间:2018-11-16 00:03:58

标签: php laravel email

Laravel为什么说电子邮件不是定义的变量?

$title = 'hi';
$content = 'hi';
$email='topher@site.com';

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) {
 $message->from('john@site.com', 'Topher');
 $message->to($email);
});

3 个答案:

答案 0 :(得分:4)

您正在函数中使用它,这就是另一个作用域。在函数参数之后添加use($email)

function($message) use($email)

答案 1 :(得分:3)

因为您正在访问另一个函数作用域内的$email变量。

代替

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) {

添加use关键字以将$email变量包括在闭包函数的作用域之内。

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) use($email) {

答案 2 :(得分:0)

这超出了您的功能范围。试试这个:

$title = 'hi';
$content = 'hi';

Mail::send('confirmation', ['title' => $title, 'content' => $content], function ($message) {
    $email='topher@site.com';
    $message->from('john@site.com', 'Topher');
    $message->to($email);
});