Je eerste closure
Javascript, Java (sort of), Python en Ruby, en vele andere talen kende ze al langer, maar nu zitten ze ook in PHP: Closures! Ook bekend als lambda-functies.
Maar we hadden toch al create_function?
Dat is waar, maar hoe bruikbaar was die nou? Dat was eigenlijk niet meer dan een verkapte eval aanroep. Closures zijn vele malen krachtiger!
Ik gebruikte create_function al nooit, waarom zou ik closures gaan gebruiken?
Sommige functies zijn handiger met een callback. Bijvoorbeeld array_walk, usort en array_map, maar ook ob_start. Closures zijn heel geschikt voor het definiƫren van functies die je eigenlijk maar op 1 plek nodig hebt, maar toch als functie wil hebben om zo bijvoorbeeld onder de niet-recursieve aart van een while-lus uit te komen. Daar komt nog eens bij dat closures variabelen uit de huidige scope kunnen importeren en gebruiken.
Closures definieren
Je eerste closure!
WTF?!: Let erop dat een closure definiƫren vergelijkbaar is met een normaal PHP statement. Daarom moet er een punt-komma volgen na je afsluitende haakje.
Inhoudsopgave
- Je eerste closure
- Variabelen importeren in een closure
- De scope van 'use'
- Closure en objecten
- WTF?! - de opsomming
- Disclaimer