2016-09-16 41 views
1

我使用Laravel 5的块封闭方法。如何创建一个没有重置值的块函数闭包计数器?

但是,当函数闭包获取新块时,请重置var。

... 
$var = 0; 
DB::connection('mysql_old')->table($table)->orderBy('uid')->whereNotNull('uid')->chunk(100, function($suppliers) 
     use ($table, $checks, $faker,$missing,$var) 
{ 
    // Some code 
     ++$var; 
} 

如果在每一个新块使用$var传递到use ($var)$var重置为0

它是如何对箱子和用户最佳的方式反成封闭?

回答

2

您需要通过参考function() use(&$var) {}

通过它,如果你不按引用传递所有你传递是如此的任何修改被限定在功能就像一个正常的参数值。

+0

非常感谢。我不太清楚,使用var pass作为参考。现在我明白了。 – abkrim

+0

这是正确的!按值传递会复制并为您提供该变量的另一个实例。按引用传递实际上会为您提供该变量的内存地址,因此您将从外部更改变量。 –

相关问题