Fundamentals 4 min read

Understanding Anonymous (Lambda) Functions in PHP

The article explains what anonymous (lambda) functions are, their purposes such as code simplification, functional programming, closures, and one‑time use, outlines scenarios for their use with PHP code examples, and provides a sample implementation demonstrating their practical application.

php Courses
php Courses
php Courses
Understanding Anonymous (Lambda) Functions in PHP

What is an Anonymous Function

An anonymous function, as the name suggests, is a function without an explicit name, often used when a function needs to be passed as a parameter, such as defining callbacks or temporary functions.

Purpose of Creating Anonymous Functions

Anonymous functions, also known as lambda functions, are a powerful tool in software development designed to improve code flexibility and usability.

Their main application scenarios include:

Simplify code: no explicit naming, directly define and use, making code more concise and readable.

Functional programming: passed as arguments to other functions like map, filter, enabling modular and functional style.

Create closures: capture and preserve the surrounding context, allowing access to external variables.

One‑time use: for logic needed only once, keeping the namespace clean.

Simplify callbacks: commonly used in event handling, defining callback logic inline.

When to Use Anonymous Functions

Callbacks in functions: when you need a temporary function as a parameter (e.g., array_map, array_filter, usort).

$result = array_map(function($num) {
    return $num * 2;
}, $numbers);

Closures: when you need to access variables from an outer scope, the use keyword creates a closure.

$factor = 3;
$multiply = function($num) use ($factor) {
    return $num * $factor;
};

One‑time functions: if you need a function that will be used only once, an anonymous function keeps the namespace clean.

$result = array_filter($array, function($value) {
    return $value > 10;
});

Example Implementation

public function approve(array $data, int $id): bool
{
    $data['keterangan'] = null;
    return $this->processApproval($data, $id, fn($level, $status) => StatusSuratEnum::approveNextStatus($level, $status));
}

protected function processApproval(array $data, int $id, callable $statusMethod, bool $generate = true): bool
{
    // Your logic magic

    $data['status'] = $statusMethod($result->level_surat, $result->status);

    return $this->update($data, $id);
}

PHP 8, here I come

Scan the QR code for free learning materials

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

LambdaPHP
php Courses
Written by

php Courses

php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.