2016-09-16 23 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; 
} 

すべての新しいチャンクに$varuse ($var)に渡さを使用している場合、それがクレートとユーザーのための最善の方法は、閉鎖にカウンターだどのように0

から$varリセット?

答えて

2

あなたは、あなたが渡しているすべてがそう何らかの変更がちょうど通常のパラメータと同様の機能にスコープされた値である参照渡していない場合は、参照function() use(&$var) {}

ことによってそれを渡す必要があります。

+0

ありがとうございました。私はうまくいきません、参照によってvar passを使用してください。今私は知っている。 – abkrim

+0

これは間違いない!値渡しはコピーし、その変数の別のインスタンスを渡します。参照渡しは、実際にはその変数のメモリアドレスを与えるため、変数を外部から変更することになります。 –

関連する問題