Sobes.tech
Junior

Mis on anonüümfunktsioonid?

sobes.tech AI

Vastus AI-lt

Anonüümne funktsioon (või Closure) on nimeta funktsioon. Seda saab salvestada muutujasse ja edasi anda argumentina teistele funktsioonidele.

Peamised omadused:

  • Nimeta.
  • Võib omistada muutujale.
  • Võib edastada teise funktsiooni parameetrina (callback).
  • Võib kasutada vanema piirkonna muutujaid use konstruktsiooni kaudu.

Näide kasutamisest:

<?php
// Anonüümse funktsiooni omistamine muutujale
$greet = function($name)
{
    printf("Tere, %s!\n", $name);
};

$greet('Maailm'); // Anonüümse funktsiooni kutsumine

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

print_r($doubled);

// Vanema piirkonna muutuja kasutamine `use` kaudu
$message = 'Tere';
$example = function () use ($message) {
    echo $message;
};
$example();

Anonüümsete funktsioonide eelised:

  • Kasulik lühikesteks, ühekordseteks funktsioonideks.
  • Sageli kasutatakse kõrgema järgu funktsioonidega (nt array_map, usort).
  • Annab võimaluse luua sulgusid (closures).

Miinused:

  • Võib olla vähem loetav keerukamate funktsioonide puhul.
  • Debugging võib olla veidi keerulisem nime puudumise tõttu.