Sobes.tech
Middle

O que é um closure em PHP?

sobes.tech IA

Resposta da IA

Função-objeto com a capacidade de capturar variáveis do âmbito do seu criador, mesmo após esse âmbito ter terminado a sua execução.

<?php
// Encerramento que captura $factor
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

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

echo $double(10); // Saída: 20
echo $triple(10); // Saída: 30

Principais características:

  • São instâncias da classe Closure.
  • Podem herdar variáveis do âmbito superior usando a palavra-chave use.
  • As variáveis herdadas são herdadas por valor, a menos que seja explicitamente indicado herança por referência (use (&$variable)).
  • São frequentemente usadas para criar funções anônimas que "lembram" o contexto em que foram criadas.