Bird
Raised Fist0
PHPprogramming~10 mins

Ternary operator in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to assign $result to 'Yes' if $a is true, otherwise 'No'.

PHP
$result = $a ? [1] : 'No';
Drag options to blanks, or click blank then click option'
A'No'
B'Yes'
Ctrue
Dfalse
Attempts:
3 left
💡 Hint
Common Mistakes
Putting 'No' as the first value, which is for the false case.
Using true or false instead of the string 'Yes'.
2fill in blank
medium

Complete the code to assign $status to 'adult' if $age is 18 or more, otherwise 'minor'.

PHP
$status = ($age >= 18) ? [1] : 'minor';
Drag options to blanks, or click blank then click option'
A'minor'
B$age
C18
D'adult'
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping 'adult' and 'minor' values.
Using the number 18 instead of the string 'adult'.
3fill in blank
hard

Fix the error in the ternary operator to assign $message to 'Success' if $code equals 200, else 'Error'.

PHP
$message = ($code == 200) ? [1] : 'Error';
Drag options to blanks, or click blank then click option'
A'Success'
B'Error'
C200
DSuccess
Attempts:
3 left
💡 Hint
Common Mistakes
Using Success without quotes causing undefined constant error.
Using 200 instead of the string 'Success'.
4fill in blank
hard

Fill both blanks to assign $output to 'even' if $num is divisible by 2, else 'odd'.

PHP
$output = ($num [1] 2 == 0) ? [2] : 'odd';
Drag options to blanks, or click blank then click option'
A%
B'even'
C'odd'
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using == instead of % for modulus.
Assigning 'odd' in the true case.
5fill in blank
hard

Fill all three blanks to create a ternary that assigns $result to uppercase $word if $flag is true, else lowercase $word.

PHP
$result = $flag ? [1]([2]) : [3]($word);
Drag options to blanks, or click blank then click option'
Astrtoupper
B$word
Cstrtolower
Attempts:
3 left
💡 Hint
Common Mistakes
Using the same function for both true and false cases.
Not passing $word as argument.

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