In PHP, an anonymous function (also called a closure) is a function that has no name. It is often used as a callback function or stored in a variable.
🔹 Syntax of an Anonymous Function
Unlike regular functions defined using function functionName(), anonymous functions are created using function() and can be assigned to a variable.
📝 Example 1: Storing an Anonymous Function in a Variable
Here’s a simple example where an anonymous function is assigned to a variable and then executed.
<?php
// Assign an anonymous function to a variable
$greet = function($name) {
return "Hello, $name!";
};
// Call the function
echo $greet("John");
?>
Explanation:
- The anonymous function is stored in the variable
$greet. - It is later executed like a normal function by calling
$greet("John").
📝 Example 2: Using an Anonymous Function as a Callback
Anonymous functions are often used as **callback functions**, especially in array functions like array_map().
<?php
$numbers = [1, 2, 3, 4, 5];
// Using an anonymous function with array_map()
$squared = array_map(function($n) {
return $n * $n;
}, $numbers);
print_r($squared);
?>
Explanation:
- The function inside
array_map()is an anonymous function. - It squares each element in the
$numbersarray. - The result is a new array with squared values.
📝 Example 3: Using the use Keyword in Closures
Anonymous functions cannot directly access variables outside their scope. However, you can use the use keyword to import external variables.
<?php
$message = "Hello";
// Closure using 'use' to access external variable
$greet = function($name) use ($message) {
return "$message, $name!";
};
echo $greet("Alice");
?>
Explanation:
- The variable
$messageis outside the function. - Using
use ($message), we bring it into the function’s scope.
📝 Example 4: Returning an Anonymous Function
Functions can return anonymous functions, allowing dynamic function creation.
<?php
function createMultiplier($factor) {
return function($number) use ($factor) {
return $number * $factor;
};
}
$double = createMultiplier(2);
echo $double(5); // Output: 10
?>
Explanation:
- The function
createMultiplier()returns an anonymous function. - The returned function uses
use ($factor)to access the multiplier. $double = createMultiplier(2);creates a function that doubles numbers.
🎯 Key Takeaways
function()creates an **anonymous function (closure)**.- Anonymous functions are often **stored in variables** or **used as callbacks**.
- Use the
usekeyword to **import external variables** into an anonymous function. - Functions can **return anonymous functions**, enabling flexible and reusable code.
📝 Practice Time!
Modify these examples and experiment with **PHP anonymous functions** for a deeper understanding! 🚀