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!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$foo
= function($x, $y) {
    return $x * $y;
};

?>

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.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Je eerste closure
  2. Variabelen importeren in een closure
  3. De scope van 'use'
  4. Closure en objecten
  5. WTF?! - de opsomming
  6. Disclaimer

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.