2016-09-16 42 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

這是正確的!按值傳遞會複製併爲您提供該變量的另一個實例。按引用傳遞實際上會爲您提供該變量的內存地址,因此您將從外部更改變量。 –

相關問題