繁体   English   中英

PHP函数内部的变量范围

[英]Variable scope inside php function

我正在使用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,
                ));
            }
        });
    }

我得到未定义的变量:数据

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM