Bird
Raised Fist0
PHPprogramming~10 mins

Loose comparison vs strict comparison in PHP - Interactive Practice

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

Complete the code to perform a loose comparison between two variables.

PHP
<?php
$a = 5;
$b = '5';
if ($a [1] $b) {
    echo "Equal";
} else {
    echo "Not equal";
}
?>
Drag options to blanks, or click blank then click option'
A==
B!==
C!=
D===
Attempts:
3 left
💡 Hint
Common Mistakes
Using === instead of == causes strict comparison, which also checks type.
2fill in blank
medium

Complete the code to perform a strict comparison between two variables.

PHP
<?php
$x = 10;
$y = '10';
if ($x [1] $y) {
    echo "Identical";
} else {
    echo "Not identical";
}
?>
Drag options to blanks, or click blank then click option'
A!==
B==
C!=
D===
Attempts:
3 left
💡 Hint
Common Mistakes
Using == instead of === causes loose comparison, ignoring type.
3fill in blank
hard

Fix the error in the code to correctly check if two variables are not strictly equal.

PHP
<?php
$a = 0;
$b = false;
if ($a [1] $b) {
    echo "Not identical";
} else {
    echo "Identical";
}
?>
Drag options to blanks, or click blank then click option'
A!=
B!==
C==
D===
Attempts:
3 left
💡 Hint
Common Mistakes
Using != instead of !== causes loose inequality check.
4fill in blank
hard

Fill both blanks to create a dictionary that maps comparison operators to their descriptions.

PHP
<?php
$comparisons = [
    '[1]' => 'Loose equality',
    '[2]' => 'Strict equality'
];
print_r($comparisons);
?>
Drag options to blanks, or click blank then click option'
A==
B===
C!=
D!==
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up operators or using inequality operators.
5fill in blank
hard

Fill all three blanks to complete the code that checks different comparisons and prints results.

PHP
<?php
$a = '0';
$b = 0;
if ($a [1] $b) {
    echo "Loose equal\n";
}
if ($a [2] $b) {
    echo "Strict equal\n";
}
if ($a [3] $b) {
    echo "Not strict equal\n";
}
?>
Drag options to blanks, or click blank then click option'
A==
B===
C!==
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing != with !== or mixing up equality operators.

Practice

(1/5)
1. What is the main difference between == and === in PHP?
easy
A. == compares values after type conversion, === compares value and type exactly
B. == compares only types, === compares only values
C. == is used for assignment, === is used for comparison
D. == compares memory addresses, === compares values

Solution

  1. Step 1: Understand loose comparison

    Loose comparison (==) converts types if needed and then compares values.
  2. Step 2: Understand strict comparison

    Strict comparison (===) checks both value and type without conversion.
  3. Final Answer:

    == compares values after type conversion, === compares value and type exactly -> Option A
  4. Quick Check:

    Loose == vs Strict === = == compares values after type conversion, === compares value and type exactly [OK]
Hint: Remember: === means exactly equal type and value [OK]
Common Mistakes:
  • Thinking == compares types only
  • Confusing assignment (=) with comparison (==)
  • Assuming === converts types before comparing
2. Which of the following is the correct syntax for strict comparison in PHP?
easy
A. $a = $b;
B. $a !== $b;
C. $a == $b;
D. $a === $b;

Solution

  1. Step 1: Identify strict comparison operator

    Strict comparison uses three equal signs: ===.
  2. Step 2: Check syntax correctness

    $a === $b; is valid syntax for strict comparison.
  3. Final Answer:

    $a === $b; -> Option D
  4. Quick Check:

    Strict comparison syntax = $a === $b; [OK]
Hint: Use three equal signs for strict comparison [OK]
Common Mistakes:
  • Typing == instead of ===
  • Using = which is assignment, not comparison
  • Confusing == (loose) with === (strict)
3. What will be the output of the following PHP code?
$a = 0;
$b = '0';
if ($a == $b) {
echo 'Equal';
} else {
echo 'Not Equal';
}
if ($a === $b) {
echo ' Strictly Equal';
} else {
echo ' Not Strictly Equal';
}
medium
A. Equal Strictly Equal
B. Not Equal Strictly Equal
C. Equal Not Strictly Equal
D. Not Equal Not Strictly Equal

Solution

  1. Step 1: Evaluate loose comparison ($a == $b)

    $a is integer 0, $b is string '0'. Loose comparison converts types, so 0 == '0' is true, prints 'Equal'.
  2. Step 2: Evaluate strict comparison ($a === $b)

    Strict comparison checks type and value. Integer 0 !== string '0', so false, prints ' Not Strictly Equal'.
  3. Final Answer:

    Equal Not Strictly Equal -> Option C
  4. Quick Check:

    0 == '0' true, 0 === '0' false = Equal Not Strictly Equal [OK]
Hint: Loose ignores type, strict checks type too [OK]
Common Mistakes:
  • Assuming strict comparison returns true for 0 and '0'
  • Confusing output order
  • Ignoring spaces in echoed strings
4. Find the error in this PHP code snippet:
$x = '10';
if ($x = 10) {
echo 'Match';
} else {
echo 'No Match';
}
medium
A. Using assignment (=) instead of comparison (==) in if condition
B. Missing semicolon after echo statement
C. Using double quotes instead of single quotes
D. Variable $x is not defined

Solution

  1. Step 1: Check if condition operator

    The condition uses = which assigns 10 to $x instead of comparing.
  2. Step 2: Understand effect of assignment in if

    Assignment returns 10 (truthy), so 'Match' always prints, ignoring original $x value.
  3. Final Answer:

    Using assignment (=) instead of comparison (==) in if condition -> Option A
  4. Quick Check:

    Assignment in if condition = Using assignment (=) instead of comparison (==) in if condition [OK]
Hint: Use == or === for comparison, not = [OK]
Common Mistakes:
  • Confusing = with == in conditions
  • Thinking missing semicolon causes error here
  • Assuming quotes affect comparison operator
5. You want to check if a user input variable $input is exactly the integer 0 (zero) and not a string '0' or other falsy value. Which condition is the best to use?
hard
A. if ($input == 0)
B. if ($input === 0)
C. if ($input != 0)
D. if ($input !== 0)

Solution

  1. Step 1: Understand the requirement

    We want to check if $input is integer 0 exactly, not string '0' or other falsy values.
  2. Step 2: Choose strict comparison

    == allows type conversion, so string '0' == 0 is true, which is not desired. === checks type and value strictly.
  3. Final Answer:

    if ($input === 0) -> Option B
  4. Quick Check:

    Exact type and value check = if ($input === 0) [OK]
Hint: Use === to check exact type and value [OK]
Common Mistakes:
  • Using == and getting true for string '0'
  • Using != or !== which check for inequality
  • Ignoring type differences in comparisons
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