Anonymous functions let you create small pieces of code without giving them a name. They are useful when you want to use a function just once or pass it around easily.
Anonymous function syntax in PHP
<?php $variable = function($parameters) { // code here };
The function is assigned to a variable, so you can call it using that variable.
Anonymous functions can also use variables from outside their scope using the use keyword.
<?php $greet = function($name) { return "Hello, $name!"; }; echo $greet("Alice");
<?php $sum = function($a, $b) { return $a + $b; }; echo $sum(3, 4);
use.<?php $message = "Hi"; $showMessage = function() use ($message) { echo $message; }; $showMessage();
This program defines an anonymous function to multiply two numbers, calls it with 5 and 6, and prints the result.
<?php // Create an anonymous function to multiply two numbers $multiply = function($x, $y) { return $x * $y; }; // Call the function and print the result $result = $multiply(5, 6); echo "5 times 6 is $result";
Remember to add a semicolon ; after the anonymous function definition when assigning it to a variable.
Anonymous functions can be stored in variables, passed as arguments, or returned from other functions.
Anonymous functions are unnamed functions assigned to variables.
They are useful for quick, one-time use functions or callbacks.
You can access outside variables inside anonymous functions using use.
Practice
Solution
Step 1: Understand function naming
Anonymous functions do not have a name, unlike regular functions.Step 2: Recognize assignment to variables
They are often assigned to variables for later use or callbacks.Final Answer:
A function without a name, often assigned to a variable -> Option CQuick Check:
Anonymous function = unnamed function assigned to variable [OK]
- Thinking anonymous functions must have names
- Confusing anonymous functions with class methods
- Assuming anonymous functions run automatically
Solution
Step 1: Identify correct anonymous function syntax
In PHP, anonymous functions use the keywordfunctionwithout a name and are assigned to variables.Step 2: Check each option
$func = function() { echo 'Hello'; }; uses correct syntax:$func = function() { ... };. Others have invalid keywords or syntax.Final Answer:
$func = function() { echo 'Hello'; }; -> Option BQuick Check:
Anonymous function syntax = function keyword + no name + assignment [OK]
- Adding 'anonymous' keyword before function
- Using := instead of = for assignment
- Trying to name the anonymous function
$x = 5;
$func = function() use ($x) {
echo $x * 2;
};
$func();
Solution
Step 1: Understand 'use' keyword in anonymous functions
Theuse ($x)imports the variable$xfrom the outer scope into the anonymous function.Step 2: Calculate the output
The function echoes$x * 2, which is 5 * 2 = 10.Final Answer:
10 -> Option DQuick Check:
use imports variable, output = 5*2 = 10 [OK]
- Forgetting to use 'use' and expecting access to $x
- Expecting output 5 instead of 10
- Assuming variable is undefined inside function
$x = 10;
$func = function() {
echo $x;
};
$func();
Solution
Step 1: Check variable scope inside anonymous function
Variables outside anonymous functions are not accessible inside unless imported withuse.Step 2: Identify the error cause
The code tries to echo$xinside the function withoutuse ($x), causing an undefined variable error.Final Answer:
Variable $x is not accessible inside the anonymous function -> Option AQuick Check:
Outside variables need 'use' to be accessed inside [OK]
- Assuming outside variables are automatically accessible
- Thinking anonymous functions must have names
- Confusing syntax errors with scope errors
$a = 3;
$b = 4;
$sumFunc = function() {
echo $a + $b;
};
$sumFunc();
Solution
Step 1: Understand variable access in anonymous functions
Anonymous functions can access outside variables byuseor accept parameters.Step 2: Analyze options
$sumFunc = function() use ($a, $b) { echo $a + $b; }; usesuse ($a, $b)to import variables. $sumFunc = function($a, $b) { echo $a + $b; }; $sumFunc($a, $b); passes variables as parameters. Both are valid.Final Answer:
Both A and B are correct ways -> Option AQuick Check:
Use 'use' or parameters to access variables inside anonymous functions [OK]
- Forgetting to import variables or pass as parameters
- Assuming anonymous functions cannot take parameters
- Trying to access outside variables without 'use'
Ready to prove it?
Pass the test and this pattern moves unknown
