typestar

Clausuras y funciones flecha en PHP

Dos formas de capturar una variable: el fn() breve y el use() explícito.

<?php
$rate = 1.25;

// arrow functions capture enclosing variables automatically
$convert = fn(float $usd): float => round($usd * $rate, 2);
echo $convert(40.0), "\n";

// classic closures list their captures with use()
$count = 0;
$tick = function () use (&$count) {
    return ++$count;
};
$tick();
$tick();
echo $count, "\n";

Cómo funciona

  1. fn() es una flecha de una sola expresión que captura $rate por valor, automáticamente.
  2. Una function () use (&$count) clásica nombra sus capturas por adelantado.
  3. El & vuelve la captura por referencia, así $tick muta el contador original.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
325
Tokens
64
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 51 segundos.

Escribe este fragmento

Paso 2 de 3 en Funciones; paso 11 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →