Bird
Raised Fist0
PHPprogramming~5 mins

Comparison operators (loose and strict) in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the difference between loose and strict comparison operators in PHP?
Loose comparison (==) checks if values are equal after type juggling. Strict comparison (===) checks if values are equal and of the same type.
Click to reveal answer
beginner
What does the PHP expression (5 == '5') return and why?
It returns true because loose comparison converts the string '5' to the integer 5 before comparing.
Click to reveal answer
beginner
What does the PHP expression (5 === '5') return and why?
It returns false because strict comparison checks both value and type, and here one is integer and the other is string.
Click to reveal answer
intermediate
Which operator should you use to avoid unexpected type coercion in PHP comparisons?
Use the strict comparison operator (===) to avoid unexpected type coercion.
Click to reveal answer
intermediate
What will be the result of (0 == false) and (0 === false) in PHP?
(0 == false) is true because loose comparison converts types. (0 === false) is false because types differ (integer vs boolean).
Click to reveal answer
What does the PHP operator '==' do?
AChecks if values and types are exactly equal
BChecks if values are equal after type conversion
CAssigns a value
DChecks if values are not equal
Which operator checks both value and type equality in PHP?
A==
B!=
C===
D<>
What is the result of ('10' === 10) in PHP?
Afalse
Btrue
Cnull
Derror
Why is it safer to use '===' instead of '==' in PHP?
ABecause '===' avoids unexpected type coercion
BBecause '==' only works with numbers
CBecause '==' causes syntax errors
DBecause '===' is faster
What does (null == false) evaluate to in PHP?
Aerror
Btrue
Cnull
Dfalse
Explain the difference between loose and strict comparison operators in PHP with examples.
Think about how PHP treats types when comparing.
You got /4 concepts.
    Why is it recommended to use strict comparison (===) in PHP instead of loose comparison (==)?
    Consider what happens when different types are compared loosely.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which PHP comparison operator checks both value and type strictly?
      easy
      A. ===
      B. ==
      C. !=
      D. <>

      Solution

      1. Step 1: Understand loose vs strict comparison

        Loose comparison (==) checks value after type conversion, strict (===) checks value and type exactly.
      2. Step 2: Identify operator that checks type and value

        The operator === compares both type and value strictly without conversion.
      3. Final Answer:

        === -> Option A
      4. Quick Check:

        Strict comparison = === [OK]
      Hint: Use === to compare type and value exactly [OK]
      Common Mistakes:
      • Confusing == with ===
      • Thinking != checks type
      • Using <> instead of !=
      2. Which of the following is the correct syntax for a strict inequality check in PHP?
      easy
      A. !=
      B. !==
      C. <>
      D. !===

      Solution

      1. Step 1: Recall PHP strict inequality operator

        Strict inequality operator in PHP is !== which checks both type and value are not equal.
      2. Step 2: Identify correct syntax

        !== is valid syntax; !=== is invalid and others are loose inequality.
      3. Final Answer:

        !== -> Option B
      4. Quick Check:

        Strict inequality = !== [OK]
      Hint: Use !== for strict not equal check [OK]
      Common Mistakes:
      • Using !=== which is invalid
      • Confusing != with !==
      • Using <> for strict inequality
      3. What will be the output of this PHP code?
      $a = 0;
      $b = '0';
      var_dump($a == $b);
      var_dump($a === $b);
      medium
      A. bool(true) bool(false)
      B. bool(false) bool(true)
      C. bool(true) bool(true)
      D. bool(false) bool(false)

      Solution

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

        0 (int) and '0' (string) are equal after type conversion, so $a == $b is true.
      2. Step 2: Evaluate strict comparison ($a === $b)

        Types differ (int vs string), so $a === $b is false.
      3. Final Answer:

        bool(true) bool(false) -> Option A
      4. Quick Check:

        Loose == true, Strict === false [OK]
      Hint: Remember === checks type too, == converts types [OK]
      Common Mistakes:
      • Assuming both comparisons return true
      • Ignoring type difference in strict check
      • Confusing output order
      4. Find the error in this PHP code snippet:
      $x = 5;
      if ($x = '5') {
      echo 'Equal';
      } else {
      echo 'Not equal';
      }
      medium
      A. Missing semicolon after echo
      B. Using strict comparison (===) instead of loose
      C. Assignment (=) used instead of comparison (==)
      D. Variable $x is not defined

      Solution

      1. Step 1: Identify operator in if condition

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

        Assignment returns the assigned value, which is truthy, so 'Equal' always prints regardless of original $x.
      3. Final Answer:

        Assignment (=) used instead of comparison (==) -> Option C
      4. Quick Check:

        Use == for comparison, not = [OK]
      Hint: Use == for comparison, not = assignment [OK]
      Common Mistakes:
      • Confusing = with == in conditions
      • Thinking strict comparison is error here
      • Ignoring that assignment returns value
      5. You want to filter an array to keep only elements that are exactly integer 0, excluding string '0'. Which comparison operator should you use in PHP?
      hard
      A. ==
      B. !==
      C. !=
      D. ===

      Solution

      1. Step 1: Understand filtering requirement

        We want to keep only elements that are integer 0, not string '0'. So type matters.
      2. Step 2: Choose operator that checks type and value

        Strict equality (===) checks both value and type, so it excludes string '0'.
      3. Final Answer:

        === -> Option D
      4. Quick Check:

        Strict equality === filters exact type and value [OK]
      Hint: Use === to match exact type and value [OK]
      Common Mistakes:
      • Using == which allows type conversion
      • Using != or !== which exclude 0
      • Ignoring type difference in filtering
      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