Bird
Raised Fist0
PHPprogramming~20 mins

Ternary operator in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Ternary Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this PHP code using ternary operator?
Consider the following PHP code snippet. What will it output?
PHP
<?php
$score = 75;
$result = $score >= 60 ? 'Pass' : 'Fail';
echo $result;
?>
AError
BFail
C75
DPass
Attempts:
2 left
💡 Hint
Check the condition before the question mark and what happens if true or false.
❓ Predict Output
intermediate
2:00remaining
What does this nested ternary operator output?
Analyze the output of this PHP code with nested ternary operators.
PHP
<?php
$age = 20;
$status = $age < 13 ? 'Child' : ($age < 20 ? 'Teen' : 'Adult');
echo $status;
?>
AAdult
BTeen
CChild
DError
Attempts:
2 left
💡 Hint
Check each condition from left to right carefully.
🔧 Debug
advanced
2:00remaining
What error does this PHP ternary code produce?
Identify the error caused by this PHP code snippet.
PHP
<?php
$value = 10;
$result = $value > 5 ? 'High' 'Low';
echo $result;
?>
AParse error: syntax error
BOutputs 'HighLow'
COutputs 'High'
DUndefined variable error
Attempts:
2 left
💡 Hint
Check the syntax around the ternary operator carefully.
❓ Predict Output
advanced
2:00remaining
What is the output of this PHP code with ternary and assignment?
What will this PHP code print?
PHP
<?php
$a = 0;
$b = $a ?: 5;
echo $b;
?>
A0
BError
C5
Dnull
Attempts:
2 left
💡 Hint
The ?: operator returns the left value if it is truthy, otherwise the right value.
🧠 Conceptual
expert
2:00remaining
How many items are in the resulting array after this PHP code?
What is the count of elements in the array produced by this code?
PHP
<?php
$array = [
  'a' => 1,
  'b' => 2,
  'c' => 3
];
$result = [];
foreach ($array as $key => $value) {
  $result[$key] = $value > 1 ? $value * 2 : $value;
}
echo count($result);
?>
A2
B3
C1
D0
Attempts:
2 left
💡 Hint
The foreach loop adds one element per original array item.

Practice

(1/5)
1. What does the ternary operator condition ? value_if_true : value_if_false do in PHP?
easy
A. It chooses one of two values based on the condition's truth.
B. It creates a loop that runs twice.
C. It defines a function with two parameters.
D. It comments out a line of code.

Solution

  1. Step 1: Understand the ternary operator format

    The ternary operator uses a condition followed by a question mark, then two values separated by a colon.
  2. Step 2: Identify its purpose

    It returns the first value if the condition is true, otherwise the second value.
  3. Final Answer:

    It chooses one of two values based on the condition's truth. -> Option A
  4. Quick Check:

    condition ? true_value : false_value = chooses value [OK]
Hint: Think: condition true? pick first : else pick second [OK]
Common Mistakes:
  • Confusing ternary with loops
  • Thinking it defines functions
  • Assuming it comments code
2. Which of the following is the correct syntax for a ternary operator in PHP?
easy
A. condition ? value_if_true, value_if_false;
B. condition : value_if_true ? value_if_false;
C. condition ? value_if_true : value_if_false;
D. condition ? (value_if_true : value_if_false);

Solution

  1. Step 1: Recall ternary operator syntax

    The correct syntax is: condition ? value_if_true : value_if_false;
  2. Step 2: Check each option

    Only condition ? value_if_true : value_if_false; matches the correct syntax exactly.
  3. Final Answer:

    condition ? value_if_true : value_if_false; -> Option C
  4. Quick Check:

    Syntax = condition ? true : false [OK]
Hint: Remember: question mark before colon in ternary [OK]
Common Mistakes:
  • Swapping question mark and colon
  • Using comma instead of colon
  • Adding extra parentheses incorrectly
3. What is the output of this PHP code?
$age = 20;
$result = ($age >= 18) ? 'Adult' : 'Minor';
echo $result;
medium
A. Adult
B. Error
C. 20
D. Minor

Solution

  1. Step 1: Evaluate the condition

    $age is 20, so ($age >= 18) is true.
  2. Step 2: Apply ternary operator

    Since condition is true, $result is set to 'Adult'.
  3. Final Answer:

    Adult -> Option A
  4. Quick Check:

    20 >= 18 ? 'Adult' : 'Minor' = 'Adult' [OK]
Hint: Check condition result true or false to pick output [OK]
Common Mistakes:
  • Assuming output is the number 20
  • Confusing true and false branches
  • Expecting syntax error
4. Find the error in this PHP code using ternary operator:
$score = 75;
$grade = $score > 60 ? 'Pass' 'Fail';
echo $grade;
medium
A. Wrong variable name used
B. Missing colon ':' between true and false values
C. Ternary operator cannot be used with strings
D. Missing semicolon after echo

Solution

  1. Step 1: Check ternary operator syntax

    The ternary operator requires a colon ':' between the true and false values.
  2. Step 2: Identify the missing colon

    Code has 'Pass' 'Fail' without ':' causing syntax error.
  3. Final Answer:

    Missing colon ':' between true and false values -> Option B
  4. Quick Check:

    Syntax needs ? true : false [OK]
Hint: Always put ':' between true and false parts [OK]
Common Mistakes:
  • Omitting colon ':'
  • Using comma instead of colon
  • Confusing variable names
5. Given an array of numbers, which PHP code correctly uses the ternary operator to create a new array labeling each number as 'Even' or 'Odd'?
hard
A. $numbers = [1,2,3]; $labels = array_map(fn($n) => $n % 2 == 1 ? 'Even' : 'Odd', $numbers);
B. $numbers = [1,2,3]; $labels = array_map(fn($n) => $n % 2 == 0 ? 'Odd' : 'Even', $numbers);
C. $numbers = [1,2,3]; $labels = array_map(fn($n) => $n % 2 ? 'Even' : 'Odd', $numbers);
D. $numbers = [1,2,3]; $labels = array_map(fn($n) => $n % 2 == 0 ? 'Even' : 'Odd', $numbers);

Solution

  1. Step 1: Understand the condition for even or odd

    A number is even if $n % 2 == 0, otherwise odd.
  2. Step 2: Check each option's condition and labels

    $numbers = [1,2,3]; $labels = array_map(fn($n) => $n % 2 == 0 ? 'Even' : 'Odd', $numbers); correctly labels even numbers as 'Even' and odd as 'Odd'. Others swap or invert labels.
  3. Final Answer:

    $numbers = [1,2,3]; $labels = array_map(fn($n) => $n % 2 == 0 ? 'Even' : 'Odd', $numbers); -> Option D
  4. Quick Check:

    Even check with ternary = correct labeling [OK]
Hint: Even numbers have remainder 0 when divided by 2 [OK]
Common Mistakes:
  • Swapping 'Even' and 'Odd' labels
  • Using wrong modulo condition
  • Confusing truthy/falsy values in 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