php函数里面的变量范围

时间:2016-06-24 02:58:47

标签: php laravel scope

我正在使用Laravel和Maatwebsite / Laravel-Excel从一个雄辩的模型中导出excel文件。

这就是我所拥有的

 public function export(Request $request)
    {
        $data = $this->getData($param1)->get();
        $export = Excel::create('example' . date('m-d-Y-G-His'), function ($excel) {
            $excel->setDescription('example');
        });

        $export->sheet('Example', function ($sheet) {
            $sheet->row(1, array(
                'row1',
                'row2',
                'row3'
            ));

            $i = 2;
            foreach ($data as $d) {
                $sheet->row($i, array(
                    $d->id,
                    $d->name, $d->date,
                ));
            }
        });
    }

我得到Undefined变量:data

我理解这是一个范围问题而且错误是正确的,但是在函数内部传递变量的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以让PHP使用use关键字在匿名函数中使用它:

$export->sheet('Example', function ($sheet) use ($data) {