Sobes.tech
Junior

Kas yra anoniminės funkcijos?

sobes.tech AI

Atsakymas iš AI

Anoniminė funkcija (arba Closure) yra funkcija be vardo. Ji gali būti saugoma kintamajame ir perduodama kaip argumentas kitoms funkcijoms.

Pagrindinės savybės:

  • Be vardo.
  • Gali būti priskirta kintamajam.
  • Gali būti perduodama kaip parametras kitai funkcijai (callback).
  • Gali naudoti tėvų apimties kintamuosius per use konstrukciją.

Pavyzdys:

<?php
// Anoniminės funkcijos priskyrimas kintamajam
$greet = function($name)
{
    printf("Labas, %s!\n", $name);
};

$greet('Pasauli'); // Anoniminės funkcijos kvietimas

// Naudojimas kaip callback
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map(function($n) {
    return $n * 2;
}, $numbers);

print_r($doubled);

// Tėvų apimties kintamųjų naudojimas per `use`
$message = 'Labas';
$example = function () use ($message) {
    echo $message;
};
$example();

Anoniminių funkcijų privalumai:

  • Naudinga trumpoms, vienkartinėms funkcijoms.
  • Dažnai naudojamos su aukštesnio lygio funkcijomis (pvz., array_map, usort).
  • Leidžia kurti uždarymus (closures).

Trūkumai:

  • Gali būti mažiau skaitomos sudėtingoms funkcijoms.
  • Derinimas gali būti šiek tiek sudėtingesnis dėl vardo nebuvimo.