📖 Scenario: Imagine you are building a simple PHP program that processes a list of numbers by applying a function to each number. You want to use PHP's first-class callable syntax to pass functions easily.
🎯 Goal: You will create a list of numbers, define a function to double a number, use first-class callable syntax to apply this function to each number, and then print the results.
📋 What You'll Learn
Create an array called numbers with the values 1, 2, 3, 4, 5.
Create a function called double that takes one parameter and returns its value multiplied by 2.
Create a variable called doubleFunc that stores the first-class callable syntax for the double function.
Use array_map with doubleFunc to create a new array called doubledNumbers.
Print the doubledNumbers array using print_r.
💡 Why This Matters
🌍 Real World
First-class callable syntax helps you pass functions around easily, making your code cleaner and more flexible when processing data.
💼 Career
Understanding first-class callables is useful for PHP developers working on modern codebases, especially when using functional programming techniques or frameworks.
Progress0 / 4 steps
1
Create the numbers array
Create an array called numbers with the values 1, 2, 3, 4, 5.
PHP
Hint
Use square brackets [] to create an array in PHP.
2
Define the doubling function
Create a function called double that takes one parameter $n and returns $n * 2.
PHP
Hint
Define a function using the function keyword and return the doubled value.
3
Create the first-class callable variable
Create a variable called doubleFunc that stores the first-class callable syntax for the double function using double(...).
PHP
Hint
Use double(...) to get the first-class callable and assign it to $doubleFunc.
4
Apply the function and print results
Use array_map with $doubleFunc and $numbers to create a new array called doubledNumbers. Then print doubledNumbers using print_r.
PHP
Hint
Use array_map($doubleFunc, $numbers) to apply the function to each number.
Practice
(1/5)
1. What does the first-class callable syntax in PHP allow you to do?
easy
A. Automatically convert functions to strings
B. Create new functions dynamically at runtime
C. Prevent functions from being called more than once
D. Treat functions as variables to pass or store them easily
Solution
Step 1: Understand the concept of first-class callables
First-class callable syntax lets you treat functions like variables, so you can pass or store them.
Step 2: Compare options with this concept
Only 'Treat functions as variables to pass or store them easily' correctly describes this ability; others describe unrelated features.
Final Answer:
Treat functions as variables to pass or store them easily -> Option D
Quick Check:
First-class callable = Treat functions as variables [OK]
Hint: Remember: first-class means functions act like variables [OK]
Common Mistakes:
Confusing callable syntax with dynamic function creation
Thinking it converts functions to strings
Assuming it restricts function calls
2. Which of the following is the correct syntax to get a first-class callable for a function named foo in PHP?
easy
A. $callable = foo(...);
B. $callable = foo();
C. $callable = foo\(...);
D. $callable = foo;
Solution
Step 1: Recall the first-class callable syntax
In PHP, to get a callable for a function, you use function_name(...).
Step 2: Match the syntax with options
$callable = foo(...); uses foo(...), which is correct. $callable = foo(); calls the function. foo\(...) uses backslash incorrectly causing syntax error. $callable = foo; treats name as constant.
Final Answer:
$callable = foo(...); -> Option A
Quick Check:
Callable syntax = function_name(...) [OK]
Hint: Use parentheses with ellipsis to get callable: foo(...) [OK]
Common Mistakes:
Calling the function instead of getting callable
Omitting parentheses and ellipsis
Using backslash incorrectly for global functions
3. What will be the output of the following PHP code?
$fn = strlen(...);
echo $fn('hello');
medium
A. 5
B. hello
C. strlen
D. Error: Call to undefined function
Solution
Step 1: Understand the callable assignment
The variable $fn is assigned the callable for the built-in function strlen using first-class callable syntax.
Step 2: Call the callable with argument 'hello'
Calling $fn('hello') executes strlen('hello'), which returns 5.
Final Answer:
5 -> Option A
Quick Check:
strlen('hello') = 5 [OK]
Hint: Callable with strlen(...) returns string length [OK]
Common Mistakes:
Expecting the function name as output
Confusing callable with string
Thinking it causes an error
4. Identify the error in the following PHP code using first-class callable syntax: