Sobes.tech
Junior

Čo sú anonymné funkcie?

sobes.tech AI

Odpoveď od AI

Anonymná funkcia (alebo Closure) je funkcia bez mena. Môže byť uložená do premennej a odovzdaná ako argument do iných funkcií.

Hlavné vlastnosti:

  • Bez mena.
  • Môže byť priradená premennej.
  • Môže byť odovzdaná ako parameter inej funkcie (callback).
  • Môže používať premenné z rodičovského rozsahu pomocou konštrukcie use.

Príklad použitia:

<?php
// Priradenie anonymnej funkcie premennej
$greet = function($name)
{
    printf("Ahoj, %s!\n", $name);
};

$greet('Svet'); // Volanie anonymnej funkcie

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

print_r($doubled);

// Použitie premenných z rodičovského rozsahu pomocou use
$message = 'Ahoj';
$example = function () use ($message) {
    echo $message;
};
$example();

Výhody anonymných funkcií:

  • Vhodné pre krátke, jednorazové funkcie.
  • Často sa používajú s funkciami vyššieho radu (napríklad array_map, usort).
  • Umožňujú vytváranie uzávierok (closures).

Nevýhody:

  • Môžu byť menej čitateľné pre zložitejšie funkcie.
  • Debugging môže byť trochu ťažší kvôli absencii mena.