Bird
Raised Fist0
PHPprogramming~10 mins

Anonymous function syntax in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Anonymous function syntax
Define anonymous function
↓
Assign to variable or use directly
↓
Call the function
↓
Execute function body
↓
Return or output result
↓
End
This flow shows how an anonymous function is defined, assigned or used, called, executed, and then ends.
Execution Sample
PHP
<?php
$greet = function($name) {
    return "Hello, $name!";
};
echo $greet("Alice");
?>
Defines an anonymous function that greets a name, assigns it to $greet, then calls it with "Alice" and prints the result.
Execution Table
StepActionEvaluationResult
1Define anonymous function and assign to $greetfunction($name) { return "Hello, $name!"; }Variable $greet holds the anonymous function
2Call $greet with argument "Alice"$greet("Alice")Executes function body with $name = "Alice"
3Return string from functionreturn "Hello, Alice!";"Hello, Alice!"
4echo outputecho "Hello, Alice!";Prints: Hello, Alice!
💡 Function call completes and output is printed, program ends.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
$greetundefinedanonymous function assignedfunction calledfunction returned stringanonymous function remains assigned
Key Moments - 3 Insights
Why do we assign the anonymous function to a variable?
Assigning the function to a variable like $greet lets us call it later by that name, as shown in step 2 of the execution_table.
What happens when we call $greet("Alice")?
The function runs with $name set to "Alice", returning "Hello, Alice!" as seen in steps 2 and 3 of the execution_table.
Can we use the anonymous function without assigning it to a variable?
Yes, but then we must call it immediately or pass it directly, which is different from the example where we assign it first (step 1).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is stored in $greet after step 1?
AA string "Hello, $name!"
BThe result "Hello, Alice!"
CAn anonymous function
DUndefined
💡 Hint
Check the 'Result' column in row 1 of execution_table.
At which step does the function return the greeting string?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the 'Action' and 'Result' columns in execution_table row 3.
If we change the argument to "Bob", what changes in the execution_table?
AThe returned string changes to "Hello, Bob!"
BThe variable $greet becomes undefined
CThe function definition changes
DNo change at all
💡 Hint
Focus on the 'Evaluation' and 'Result' columns in steps 2 and 3.
Concept Snapshot
Anonymous functions are functions without a name.
Syntax: $var = function(params) { body };
Call like: $var(args);
Useful for quick, one-time functions.
Can be assigned to variables or used directly.
Full Transcript
This example shows how to create an anonymous function in PHP by assigning it to a variable named $greet. The function takes one parameter, $name, and returns a greeting string. When we call $greet("Alice"), the function runs with $name set to "Alice" and returns "Hello, Alice!". Then echo prints this result. The variable $greet holds the function itself, allowing us to call it multiple times if needed. This is a simple way to use functions without naming them explicitly.

Practice

(1/5)
1. What is an anonymous function in PHP?
easy
A. A function that is automatically called on page load
B. A function that must always have a name
C. A function without a name, often assigned to a variable
D. A function that can only be used inside classes

Solution

  1. Step 1: Understand function naming

    Anonymous functions do not have a name, unlike regular functions.
  2. Step 2: Recognize assignment to variables

    They are often assigned to variables for later use or callbacks.
  3. Final Answer:

    A function without a name, often assigned to a variable -> Option C
  4. Quick Check:

    Anonymous function = unnamed function assigned to variable [OK]
Hint: Anonymous means no name, usually stored in a variable [OK]
Common Mistakes:
  • Thinking anonymous functions must have names
  • Confusing anonymous functions with class methods
  • Assuming anonymous functions run automatically
2. Which of the following is the correct syntax to create an anonymous function in PHP?
easy
A. $func = anonymous function() { echo 'Hello'; };
B. $func = function() { echo 'Hello'; };
C. function $func() { echo 'Hello'; };
D. $func := function() { echo 'Hello'; };

Solution

  1. Step 1: Identify correct anonymous function syntax

    In PHP, anonymous functions use the keyword function without a name and are assigned to variables.
  2. Step 2: Check each option

    $func = function() { echo 'Hello'; }; uses correct syntax: $func = function() { ... };. Others have invalid keywords or syntax.
  3. Final Answer:

    $func = function() { echo 'Hello'; }; -> Option B
  4. Quick Check:

    Anonymous function syntax = function keyword + no name + assignment [OK]
Hint: Use 'function' keyword without name, assign to variable [OK]
Common Mistakes:
  • Adding 'anonymous' keyword before function
  • Using := instead of = for assignment
  • Trying to name the anonymous function
3. What will be the output of the following PHP code?
$x = 5;
$func = function() use ($x) {
echo $x * 2;
};
$func();
medium
A. 5
B. Error: Undefined variable
C. 0
D. 10

Solution

  1. Step 1: Understand 'use' keyword in anonymous functions

    The use ($x) imports the variable $x from the outer scope into the anonymous function.
  2. Step 2: Calculate the output

    The function echoes $x * 2, which is 5 * 2 = 10.
  3. Final Answer:

    10 -> Option D
  4. Quick Check:

    use imports variable, output = 5*2 = 10 [OK]
Hint: Remember 'use' imports outside variables into function [OK]
Common Mistakes:
  • Forgetting to use 'use' and expecting access to $x
  • Expecting output 5 instead of 10
  • Assuming variable is undefined inside function
4. Identify the error in the following PHP code:
$x = 10;
$func = function() {
echo $x;
};
$func();
medium
A. Variable $x is not accessible inside the anonymous function
B. Missing semicolon after function definition
C. Anonymous functions cannot echo variables
D. Function must have a name

Solution

  1. Step 1: Check variable scope inside anonymous function

    Variables outside anonymous functions are not accessible inside unless imported with use.
  2. Step 2: Identify the error cause

    The code tries to echo $x inside the function without use ($x), causing an undefined variable error.
  3. Final Answer:

    Variable $x is not accessible inside the anonymous function -> Option A
  4. Quick Check:

    Outside variables need 'use' to be accessed inside [OK]
Hint: Use 'use' to access outside variables inside anonymous functions [OK]
Common Mistakes:
  • Assuming outside variables are automatically accessible
  • Thinking anonymous functions must have names
  • Confusing syntax errors with scope errors
5. How can you modify this PHP code to correctly print the sum of two variables using an anonymous function?
$a = 3;
$b = 4;
$sumFunc = function() {
echo $a + $b;
};
$sumFunc();
hard
A. Both A and B are correct ways
B. $sumFunc = function($a, $b) { echo $a + $b; }; $sumFunc($a, $b);
C. $sumFunc = function() use ($a, $b) { echo $a + $b; };
D. Anonymous functions cannot access variables or parameters

Solution

  1. Step 1: Understand variable access in anonymous functions

    Anonymous functions can access outside variables by use or accept parameters.
  2. Step 2: Analyze options

    $sumFunc = function() use ($a, $b) { echo $a + $b; }; uses use ($a, $b) to import variables. $sumFunc = function($a, $b) { echo $a + $b; }; $sumFunc($a, $b); passes variables as parameters. Both are valid.
  3. Final Answer:

    Both A and B are correct ways -> Option A
  4. Quick Check:

    Use 'use' or parameters to access variables inside anonymous functions [OK]
Hint: Use 'use' or function parameters to access variables inside [OK]
Common Mistakes:
  • Forgetting to import variables or pass as parameters
  • Assuming anonymous functions cannot take parameters
  • Trying to access outside variables without 'use'
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard