Sobes.tech
Middle

Wat is een closure in PHP?

sobes.tech AI

Antwoord van AI

Object-functie met de mogelijkheid om variabelen uit de scope van de maker te vangen, zelfs nadat die scope is geëindigd.

<?php
// Closure die $factor vastlegt
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

$double = $multiplyBy(2);
$triple = $multiplyBy(3);

echo $double(10); // Uitvoer: 20
echo $triple(10); // Uitvoer: 30

Belangrijkste kenmerken:

  • Ze zijn instanties van de klasse Closure.
  • Ze kunnen variabelen erven uit de bovenliggende scope met behulp van het sleutelwoord use.
  • Geërfde variabelen worden standaard by value geërfd, tenzij expliciet wordt aangegeven dat er by reference geërfd moet worden (use (&$variable)).
  • Worden vaak gebruikt om anonieme functies te maken die "de context" waarin ze zijn gemaakt "herinneren".