Bird
Raised Fist0
PHPprogramming~20 mins

Null coalescing in conditions in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Null Coalescing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of null coalescing with nested variables
What is the output of this PHP code snippet?
PHP
<?php
$a = null;
$b = 0;
$c = $a ?? $b ?? 5;
echo $c;
?>
AError
Bnull
C5
D0
Attempts:
2 left
💡 Hint
Remember that null coalescing returns the first value that is not null.
❓ Predict Output
intermediate
2:00remaining
Null coalescing with undefined variable
What will this PHP code output?
PHP
<?php
// Note: error reporting is off for undefined variables
error_reporting(0);
$x = $undefinedVar ?? 'default';
echo $x;
?>
ANotice error
Bnull
Cdefault
DEmpty string
Attempts:
2 left
💡 Hint
Null coalescing operator handles undefined variables without error.
❓ Predict Output
advanced
2:00remaining
Null coalescing with function return values
What is the output of this PHP code?
PHP
<?php
function getValue() {
    return null;
}
$result = getValue() ?? 'fallback';
echo $result;
?>
Afallback
Bnull
CError: Cannot use null coalescing on function call
DEmpty string
Attempts:
2 left
💡 Hint
Check what the function returns and how null coalescing handles it.
❓ Predict Output
advanced
2:00remaining
Null coalescing with array keys
What will this PHP code output?
PHP
<?php
$arr = ['a' => null, 'b' => 2];
$value = $arr['a'] ?? $arr['b'] ?? 5;
echo $value;
?>
A2
Bnull
C5
DError: Undefined index
Attempts:
2 left
💡 Hint
Null coalescing checks if the key exists and is not null.
❓ Predict Output
expert
3:00remaining
Complex null coalescing with mixed types
What is the output of this PHP code?
PHP
<?php
$val1 = false;
$val2 = null;
$val3 = 0;
$result = $val1 ?? $val2 ?? $val3 ?? 'none';
echo gettype($result) . ':' . var_export($result, true);
?>
Ainteger:0
Bboolean:false
CNULL:null
Dstring:'none'
Attempts:
2 left
💡 Hint
Null coalescing returns the first value that is not null, even if it is false or zero.

Practice

(1/5)
1. What does the null coalescing operator ?? do in PHP conditions?
easy
A. Always returns the second operand regardless of the first.
B. Returns the first operand if it exists and is not null; otherwise returns the second operand.
C. Checks if both operands are null and returns true if so.
D. Throws an error if the first operand is null.

Solution

  1. Step 1: Understand the operator's purpose

    The null coalescing operator ?? checks if the left value exists and is not null.
  2. Step 2: Determine the return value

    If the left value is null or missing, it returns the right value as a fallback.
  3. Final Answer:

    Returns the first operand if it exists and is not null; otherwise returns the second operand. -> Option B
  4. Quick Check:

    Null coalescing = first non-null value [OK]
Hint: Think: "Use first value if valid, else fallback" [OK]
Common Mistakes:
  • Confusing it with logical OR operator
  • Assuming it throws errors on null
  • Believing it always returns second operand
2. Which of the following is the correct syntax to use null coalescing in a PHP if condition?
easy
A. if ($value || 'default') { ... }
B. if ($value ?: 'default') { ... }
C. if ($value ?? 'default') { ... }
D. if ($value ??= 'default') { ... }

Solution

  1. Step 1: Identify null coalescing syntax

    The null coalescing operator is ?? and used like $value ?? 'default'.
  2. Step 2: Check each option

    if ($value ?? 'default') { ... } uses ?? correctly inside the if condition. if ($value ?: 'default') { ... } uses the ternary shortcut, not null coalescing. if ($value || 'default') { ... } uses logical OR, which is different. if ($value ??= 'default') { ... } uses ??= which is an assignment operator, not a condition.
  3. Final Answer:

    if ($value ?? 'default') { ... } -> Option C
  4. Quick Check:

    Correct null coalescing syntax = if ($value ?? 'default') { ... } [OK]
Hint: Look for ?? operator inside the if condition [OK]
Common Mistakes:
  • Mixing null coalescing with ternary or OR operators
  • Using assignment operator ??= inside if
  • Missing parentheses or wrong operator
3. What will be the output of this PHP code?
$name = null;
$display = $name ?? 'Guest';
echo $display;
medium
A. Guest
B. Empty string
C. Error
D. null

Solution

  1. Step 1: Evaluate the variable $name

    The variable $name is set to null.
  2. Step 2: Apply null coalescing operator

    The expression $name ?? 'Guest' returns 'Guest' because $name is null.
  3. Final Answer:

    Guest -> Option A
  4. Quick Check:

    null ?? 'Guest' = 'Guest' [OK]
Hint: Null on left means right value is chosen [OK]
Common Mistakes:
  • Thinking null prints as 'null' string
  • Confusing null coalescing with OR operator
  • Expecting error when variable is null
4. Find the error in this PHP code snippet using null coalescing:
if ($user ?? 'guest') {
echo 'Welcome!';
}
medium
A. The condition always evaluates to true, so it may not work as intended.
B. The variable $user must be checked with isset() before using ??.
C. The null coalescing operator cannot be used inside if conditions.
D. The operator ?? should be replaced with logical OR ||.

Solution

  1. Step 1: Understand the condition logic

    The expression $user ?? 'guest' returns $user if set and not null, else 'guest'.
  2. Step 2: Analyze boolean evaluation

    Since 'guest' is a non-empty string, the condition is always true, even if $user is null or false.
  3. Final Answer:

    The condition always evaluates to true, so it may not work as intended. -> Option A
  4. Quick Check:

    Non-null fallback makes condition always true [OK]
Hint: Check if fallback value makes condition always true [OK]
Common Mistakes:
  • Assuming null coalescing checks boolean truth
  • Thinking isset() is required with ?? operator
  • Replacing ?? with || without reason
5. You want to display a username if it exists and is not null, otherwise show 'Anonymous'. Which code correctly uses null coalescing in a condition to echo the username or fallback?
hard
A. echo $username || 'Anonymous';
B. echo isset($username) ? $username : 'Anonymous';
C. echo $username ?: 'Anonymous';
D. echo $username ?? 'Anonymous';

Solution

  1. Step 1: Understand the requirement

    We want to print $username if it exists and is not null; otherwise print 'Anonymous'.
  2. Step 2: Compare options

    echo isset($username) ? $username : 'Anonymous'; uses ternary with isset(), which works but is longer. echo $username ?? 'Anonymous'; uses null coalescing ?? which directly checks for null and provides fallback. echo $username ?: 'Anonymous'; uses the ternary shortcut ?: which treats empty strings or 0 as false, not just null. echo $username || 'Anonymous'; uses logical OR which is incorrect syntax for echo.
  3. Final Answer:

    echo $username ?? 'Anonymous'; -> Option D
  4. Quick Check:

    Null coalescing for fallback = echo $username ?? 'Anonymous'; [OK]
Hint: Use ?? to fallback only on null, not falsy values [OK]
Common Mistakes:
  • Using ?: which treats empty strings as false
  • Using logical OR which is invalid here
  • Overcomplicating with isset() ternary
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