
Funkcje anonimowe
Od wersji 5.3 PHP’a otrzymaliśmy możliwość korzystania z funkcji anonimowych, takich jak wcześniej już istniały w JavaScript.
Czym są funkcje anonimowe ?
Funkcje anonimowe, są to funkcje w działaniu podobne do wszystkich innych, lecz nie muszą posiadać nazwy oraz możemy je przypisać do zmiennej, którą następnie możemy wywołać.
Na przykład:
echo ‘to jest funckja anonimowa’;
};
$foo();
W wyniku czego wyświetli nam się po prostu tekst „to jest funkcja anonimowa”.
Funkcje zwrotne
Jedną z zalet tego rozwiązania jest możliwość tworzenia tzw. callbacków, czyli definiowania funkcji, które następnie możemy przekazać do innej funkcji, aby się wykonały w dalszej części kodu. Jest to rozwiązanie dobrze znane osobom piszącym w JavaScript i wiele z nich się zgodzi, że brakowało tego w PHP.
echo ‘to jest funkcja zwrotna’;
};
function myFunction($cb) {
$cb();
}
myFunction($callback);
Po wykonaniu tego kodu wyświetli nam się napis „to jest funkcja zwrotna”, ponieważ przekazaliśmy ją do myFunction, a następnie została wywołana wewnątrz tej funkcji.
Argumenty funkcji anonimowych
Funkcje anonimowe przyjmują argumenty podobnie do każdej innej funkcji.
{
echo $a;
};
Lecz istnieje też możliwość przekazania do niej zmiennych lokalnie dostępnych w miejscu, w którym definiujemy naszą funkcje. Do tego celu wykorzystujemy słowo kluczowe use.
$a = ‘zmienna lokalna’;
$foo = function() use ($a) {
echo $a;
};
W wyniku wywołania tego kodu wyświetli nam się napis „zmienna lokalna”. Warunkiem jest to, że przekazana zmienna musi być zdefiniowana przed definicją samej funkcji.