jov*_*van 2 php laravel laravel-4
我有一系列电子邮件,我需要在Laravel 4.2中发送消息.这个数组是
$email_arr = ["me@yahoo.com","friend@gmail.com"]
Run Code Online (Sandbox Code Playgroud)
现在我的逻辑是简单地遍历电子邮件阵列并向每个人发送消息,如下所示:
foreach($email_arr as $email){
Mail::send('emails.invite', array('pool_code' => 'test'), function($message) {
$message->to($email)->subject('Join my capture pool!');
});
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到一个指向$message->to($email)->subject('Join my capture pool!');哪个错误的错误Undefined variable: email.
我觉得这很奇怪,因为变量显然存在,如果我echo $email在循环中它正确地打印出每个电子邮件.
那么这里发生了什么?
Ren*_*rss 12
你有匿名函数(也就是闭包),$email它的范围不具备.
闭包(匿名函数)也可以从父作用域继承变量.必须将任何此类变量传递给
use语言构造.
你必须添加use到这个功能.
foreach($email_arr as $email){
Mail::send('emails.invite', array('pool_code' => 'test'), function($message) use($email) {
$message->to($email)->subject('Join my capture pool!');
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1066 次 |
| 最近记录: |