Sobes.tech
Junior

Анонимдүү функциялар деген эмне?

sobes.tech AI

AIден жооп

Анонимдүү функция (же Closure) — бул аты жок функция. Ал өзгөрмөдө сакталат жана башка функцияларга аргумент катары өткөрүлүшү мүмкүн.

Негизги өзгөчөлүктөрү:

  • Аты жок.
  • Өзгөрмөгө берилет.
  • Башка функцияга параметр катары өткөрүлүшү мүмкүн (callback).
  • use курулушу аркылуу ата-эне чөйрөдөн өзгөрмөлөрдү колдонуу мүмкүн.

Колдонуу мисалы:

<?php
// Анонимдүү функцияны өзгөрмөгө берүү
$greet = function($name)
{
    printf("Салам, %s!\n", $name);
};

$greet('Дүйнө'); // Анонимдүү функцияны чакыруу

// Callback катары колдонуу
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map(function($n) {
    return $n * 2;
}, $numbers);

print_r($doubled);

// `use` аркылуу ата-эне чөйрөдөн өзгөрмөлөрдү колдонуу
$message = 'Салам';
$example = function () use ($message) {
    echo $message;
};
$example();

Анонимдүү функциялардын артыкчылыктары:

  • Кыска жана бир жолу колдонулуучу функциялар үчүн ыңгайлуу.
  • Жогорку даражадагы функциялар менен кеңири колдонулат (мисалы, array_map, usort).
  • Закрытияларды (closures) түзүүгө мүмкүндүк берет.

Кемчиликтери:

  • Кыйынчылык функциялар үчүн окумдуулугу төмөндөйт.
  • Ата-эне чөйрөдөн өзгөрмөлөрдү колдонуу кыйынчылык жаратат.