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 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 6

区别的话 看这段代码

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

// 使用 use 
(function() use ($b) {
    var_dump($b);
})();
4个月前 评论

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

4个月前 评论

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

4个月前 评论

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

4个月前 评论
hxlnt (楼主) 4个月前
php_yt (作者) 4个月前
php_yt (作者) 4个月前

@hxlnt 是结果一样呀, 但是

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

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

4个月前 评论

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