2016-09-16 2 views
1

Ich benutze eine Chunk-Methode Schließung von Laravel 5.Wie erstellt man einen Zähler in Chunk-Funktion Schließung ohne Reset-Wert?

Aber wenn Funktion Schließung einen neuen Chunk bekommen, Reset 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; 
} 

wenn ein $var in use ($var) auf jeden neuen Chunk geben verwenden, $var auf 0 zurückgesetzt

Wie es am besten Weg für Kiste und Benutzer einen Zähler in Schließung?

Antwort

2

Sie müssen es durch function() use(&$var) {} Referenz zu übergeben

Wenn Sie nicht als Verweis übergeben Sie alles, was Sie vorbei ist der Wert so Änderungen an der Funktion wie ein normaler Parameter nur scoped sind.

+0

Vielen Dank. Ich weiß es nicht gut, benutze var pass by reference. Jetzt weiß ich. – abkrim

+0

Das ist richtig! Wert übergeben würde kopieren und Ihnen eine andere Instanz dieser Variable geben. Pass by Reference würde Ihnen tatsächlich die Speicheradresse dieser Variablen geben, daher würden Sie die Variable von außen ändern. –

Verwandte Themen