Current Location: Home> Latest Articles> How to Pass Parameters to Anonymous Functions in PHP with Practical Examples

How to Pass Parameters to Anonymous Functions in PHP with Practical Examples

M66 2025-07-26

The Role of Anonymous Functions in PHP

Anonymous functions, also known as closures, are a feature in PHP that allows functions to be defined dynamically at runtime. These functions don’t have a name and can be assigned to variables, passed as arguments, or used as callbacks. They are widely used in modern PHP development.

Syntax for Passing Parameters

The basic syntax for defining parameters in an anonymous function is as follows:

function($argument1, $argument2, ..., $argumentN) {
    // function body
}

You can pass any number of parameters to an anonymous function, just like with regular functions.

Ways to Pass Parameters

Parameters in anonymous functions can be passed either by value or by reference.

When passed by value, any changes to the parameter inside the function do not affect the original variable.

// Pass by value
$increment = function($number) {
    return $number + 1;
};

echo $increment(5); // Output: 6

To pass by reference, use the & symbol. Changes made inside the function will reflect outside as well.

// Pass by reference
$double = function(&$number) {
    $number *= 2;
};

$value = 4;
$double($value);
echo $value; // Output: 8

Practical Usage Examples

Anonymous functions are extremely useful in various real-world programming tasks. Here are two practical examples:

Filter Array Elements Based on Condition

Use array_filter along with an anonymous function to filter array elements that meet specific criteria:

$numbers = array(1, 2, 3, 4, 5);

$evenNumbers = array_filter($numbers, function($number) {
    return $number % 2 == 0;
});

print_r($evenNumbers); 
// Output: Array ( [1] => 2 [3] => 4 )

Count Non-Space Characters in a String

Anonymous functions can also be applied in string processing tasks:

$string = "Hello, world!";

$lengthWithoutSpaces = 0;

array_walk(str_split($string), function($character) use (&$lengthWithoutSpaces) {
    if (ord($character) != 32) {
        $lengthWithoutSpaces++;
    }
});

echo $lengthWithoutSpaces; // Output: 12

Conclusion

Anonymous functions in PHP offer a flexible way to define logic on the fly. They support both value and reference parameter passing, making them powerful tools for functional and modular programming. Understanding how to properly use anonymous functions will greatly enhance your PHP coding skills and improve code readability and reusability.