PHP 在匿名函数中继承全局变量

PHP inherit global variable in Anonymous functions

我不能在匿名函数中使用变量 $data:

$data = array(...);
Excel::create('Filename',function($excel){
  foreach($data as $v){
     //...
  }
});

我得到错误:"Undefined variable: $data"

还有:

 $data = array(...);
 Excel::create('Filename',function($excel){
   global $data;
   foreach($data as $v){
      //...
   }
 });

我收到错误 "Invalid argument supplied for foreach()"

如何在匿名函数中使用 $data

您需要将 useclosure 一起使用,如下所示,

$data = array(...);
Excel::create('Filename',function($excel) use ($data){
  foreach($data as $v){
     //...
  }
});