这部分代码为什么可以作为 mail::send 的一个参数呢,不是数组也不是变量?
public function send()
{
$name = '学院君';
$flag = Mail::send('emails.test',['name'=>$name],function($message){
$to = '1072155122@qq.com';
$message ->to($to)->subject('测试邮件');
});
if($flag){
echo '发送邮件成功,请查收!';
}else{
echo '发送邮件失败,请重试!';
}
}
问题是 mail::send 的第三个参数
function($message)
{
$to = '1072155122@qq.com';
$message ->to($to)->subject('测试邮件');
}
这部分代码为什么可以作为 mail::send 的一个参数呢,不是数组也不是变量?
关于 LearnKu
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数 callable参数的值。当然,也有其它应用的情况。
闭包函数也可以作为变量的值来使用。PHP 会自动把此种表达式转换成内置类 Closure 的对象实例。把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号:
vendor/laravel/framework/src/Illuminate/Mail/Mailer.php