Bird
Raised Fist0
PHPprogramming~20 mins

Function declaration and calling in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Function Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a function with default parameter
What is the output of this PHP code?
PHP
<?php
function greet($name = "Guest") {
    return "Hello, $name!";
}
echo greet();
?>
AHello, name!
BHello, !
CHello, Guest!
DSyntax Error
Attempts:
2 left
💡 Hint
Check the default value of the parameter in the function.
❓ Predict Output
intermediate
2:00remaining
Return value from a function call
What will be the output of this PHP code?
PHP
<?php
function add($a, $b) {
    return $a + $b;
}
$result = add(5, 3);
echo $result;
?>
A5 + 3
B53
CError: Undefined function
D8
Attempts:
2 left
💡 Hint
The function returns the sum of two numbers.
🔧 Debug
advanced
2:00remaining
Identify the error in function call
What error will this PHP code produce?
PHP
<?php
function multiply($x, $y) {
    return $x * $y;
}
echo multiply(4);
?>
AWarning: Missing argument 2 for multiply()
BFatal error: Call to undefined function multiply()
COutput: 4
DNo output, code runs fine
Attempts:
2 left
💡 Hint
Check how many arguments the function expects and how many are given.
❓ Predict Output
advanced
2:00remaining
Output of recursive function
What is the output of this PHP code?
PHP
<?php
function factorial($n) {
    if ($n <= 1) {
        return 1;
    } else {
        return $n * factorial($n - 1);
    }
}
echo factorial(4);
?>
A24
B10
CError: Maximum function nesting level reached
D4
Attempts:
2 left
💡 Hint
Factorial of 4 is 4*3*2*1.
🧠 Conceptual
expert
2:00remaining
Function variable scope behavior
What will be the output of this PHP code?
PHP
<?php
$x = 10;
function test() {
    $x = 5;
    echo $x . ' ';
}
test();
echo $x;
?>
A10 10
B5 10
C5 5
D10 5
Attempts:
2 left
💡 Hint
Variables inside functions have their own scope unless declared global.

Practice

(1/5)
1. What is the correct way to declare a function named greet in PHP?
easy
A. function greet() { }
B. def greet() { }
C. func greet() { }
D. function: greet() { }

Solution

  1. Step 1: Recognize PHP function declaration syntax

    In PHP, functions are declared using the keyword function followed by the function name and parentheses.
  2. Step 2: Match the correct syntax

    function greet() { } uses function greet() { }, which is the correct PHP syntax for declaring a function named greet.
  3. Final Answer:

    function greet() { } -> Option A
  4. Quick Check:

    PHP function declaration = function greet() { } [OK]
Hint: Use 'function' keyword to declare functions in PHP [OK]
Common Mistakes:
  • Using 'def' instead of 'function'
  • Adding a colon after 'function'
  • Using 'func' keyword which is not valid in PHP
2. Which of the following is the correct way to call a function named sayHello in PHP?
easy
A. call sayHello();
B. sayHello();
C. sayHello;
D. callFunction(sayHello);

Solution

  1. Step 1: Understand PHP function call syntax

    In PHP, to call a function, you write the function name followed by parentheses, optionally with arguments inside.
  2. Step 2: Identify the correct option

    sayHello(); uses sayHello();, which is the correct way to call the function named sayHello.
  3. Final Answer:

    sayHello(); -> Option B
  4. Quick Check:

    Function call syntax = sayHello(); [OK]
Hint: Call functions by name with parentheses () [OK]
Common Mistakes:
  • Using 'call' keyword which does not exist in PHP
  • Omitting parentheses when calling functions
  • Using incorrect function call syntax like callFunction()
3. What will be the output of the following PHP code?
function add($a, $b) {
    return $a + $b;
}
echo add(3, 4);
medium
A. 7
B. 34
C. add(3, 4)
D. Error

Solution

  1. Step 1: Understand the function behavior

    The function add takes two parameters and returns their sum.
  2. Step 2: Calculate the return value

    Calling add(3, 4) returns 3 + 4 = 7, which is then printed by echo.
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    3 + 4 = 7 [OK]
Hint: Functions return values; echo prints the result [OK]
Common Mistakes:
  • Concatenating numbers as strings instead of adding
  • Expecting function name to print instead of return value
  • Syntax errors from missing semicolons
4. Identify the error in the following PHP code:
function greet() {
    echo "Hello!";
}
greet;
medium
A. Missing semicolon after function declaration
B. Function name is incorrect
C. Missing parentheses when calling the function
D. Echo statement syntax error

Solution

  1. Step 1: Check function call syntax

    The function greet is declared correctly, but when calling it, parentheses are missing.
  2. Step 2: Understand PHP function call requirements

    In PHP, functions must be called with parentheses, even if they take no arguments. So greet; is invalid; it should be greet();.
  3. Final Answer:

    Missing parentheses when calling the function -> Option C
  4. Quick Check:

    Function calls need () even if no arguments [OK]
Hint: Always use () to call functions, even if empty [OK]
Common Mistakes:
  • Calling functions without parentheses
  • Confusing function declaration with call
  • Missing semicolons elsewhere
5. Consider the following PHP code:
function multiply($x, $y = 2) {
    return $x * $y;
}
echo multiply(5);

What will be the output and why?
hard
A. 0 because default value is ignored
B. 5 because only one argument is passed
C. Error because both parameters are required
D. 10 because the second parameter uses default value 2

Solution

  1. Step 1: Understand default parameter usage

    The function multiply has two parameters, where $y has a default value of 2.
  2. Step 2: Analyze the function call

    Calling multiply(5) passes 5 as $x, and since $y is not provided, it uses the default 2.
  3. Step 3: Calculate the result

    The function returns 5 * 2 = 10, which is printed by echo.
  4. Final Answer:

    10 because the second parameter uses default value 2 -> Option D
  5. Quick Check:

    5 * 2 = 10 with default parameter [OK]
Hint: Default parameters fill missing arguments automatically [OK]
Common Mistakes:
  • Assuming all parameters must be passed
  • Ignoring default values
  • Expecting error when missing arguments
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