laravel7.3版本发送富文本邮件问题

$a={email:890809809@qq.com}Mail::send('mail.index'['name'=>'张三']function(Message $messageuse($a)
{
   $message->to($a->email)$message->subject('开通账号通知')})
这里面我想问一下大佬为什么不直接在回调函数里面把$a直接写进去传给回调函数,而要用use($a)引用外部变量呢?
多此一举呢?就是直接
function(Message $message,$a{
 $message->to($a->email)$message->subject('开通账号通知')};

找了好多文章都没有说清楚,请问社区大佬有没有一个通俗的解释。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

区别的话 看这段代码

$b = '123';
// 不使用 use 
(function($b) {
    var_dump($b);
})($b);

// 使用 use 
(function() use ($b) {
    var_dump($b);
})();
2年前 评论

匿名函数的语法问题,匿名函数使用外部变量问题,熟悉下就知道你那样用不行的

2年前 评论

@PFinal南丞 结果都一样啊哦!老大~

2年前 评论

一楼已给答案。语法问题,看看 use 的解释。Message $message 是契约,将在执行的时候系统注入这个 $message

2年前 评论
hxlnt (楼主) 2年前
php_yt (作者) 2年前
php_yt (作者) 2年前

@hxlnt 是结果一样呀, 但是

(function($b) {
    var_dump($b);
})($b);

这段代码 在调用的时候 你得 在函数外面把 $b 传递进去,在不确定 你传递参数是几个的时候, 这段代码修改起来就很麻烦了

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!