Zmienne php w funkcji anonimowej

W tym artykule pokażę jak używać wcześniej zdefiniowanych zmiennych w funkcji anonimowej w php. Załóżmy, że mamy zmienną $statuses.

$statuses = ['status1','status2','status3'];
Chcemy się potem odwołać do tej tablicy w funkcji anonimowej np. tak jak w poniższym przykładzie.
$_extract = ['id', 'adminuser.name', 'adminuser.distributorfield.sap','firstname', 'lastname', 'sms', function ($row) {
	return $statuses[$row['status']];
}, 'postal', 'city'];
Niestety to nie zadziała i dostaniemy błąd o niezdefiniowanej zmiennej. Jest jednak na to sposób wystarczy za funkcją dopisać use(&$statuses) tak jak na poniższym listingu. Teraz już nie będzie błędu i możemy bez problemu wykorzystać tą zmienną.
$_extract = ['id', 'adminuser.name', 'adminuser.distributorfield.sap','firstname', 'lastname', 'sms', function ($row) use(&$statuses) {
	return $statuses[$row['status']];
}, 'postal', 'city'];