如何在Laravel PHP中访问map函数外部的变量

时间:2018-01-08 13:01:05

标签: php laravel-5

public function test()
{
        $x = 10;
        $collection = collect([0, 10, 20]);

        $collection = $collection->map(function ($item, $key){

            return $item + $x;
        });
}

我想访问$x函数中的map变量:如何操作?
当我尝试获取值时,我收到此错误消息:

  

ErrorException:未定义的变量:x

3 个答案:

答案 0 :(得分:9)

您需要使用use关键字使anonymous function继承变量。

您可以这样使用它:

$collection = $collection->map(function ($item, $key) use ($x) {

    return $item + $x;
});

答案 1 :(得分:1)

public function test()
{
    $x = 10;
    $collection = collect([0, 10, 20]);

    $collection = $collection->map(function ($item) use ($x) {
        return $item + $x;
    });
}

请注意,您的代码中有return =错误

答案 2 :(得分:0)

public function test()
{
    $x = 10;
    $collection = collect([0, 10, 20]);
    $collection = $collection->map(function ($item, $key) use ($x) {
       return $item + $x;
    });
}