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('开通账号通知')};

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前 评论

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