📖 Scenario: Imagine you are checking user input against stored values in a system. Sometimes you want to check if values are equal regardless of type, and other times you want to be sure both value and type match exactly.
🎯 Goal: You will learn how to use loose comparison (==) and strict comparison (===) in PHP to compare values and understand the difference.
📋 What You'll Learn
Create variables with different types and values
Create a variable to hold a comparison result
Use loose comparison operator == to compare values
Use strict comparison operator === to compare values
Print the results of both comparisons
💡 Why This Matters
🌍 Real World
In real applications, you often get input as strings but need to compare with numbers. Knowing when to use loose or strict comparison helps avoid bugs.
💼 Career
Understanding comparison operators is essential for PHP developers to write correct conditions and validations in web applications.
Progress0 / 4 steps
1
DATA SETUP: Create variables with different types
Create a variable called number with the integer value 5 and a variable called stringNumber with the string value '5'.
PHP
Hint
Use = to assign values. Remember to put quotes around strings.
2
CONFIGURATION: Create a variable to hold comparison results
Create a variable called looseComparison and set it to the result of comparing $number and $stringNumber using the loose comparison operator ==.
PHP
Hint
Use == to compare values ignoring type.
3
CORE LOGIC: Create strict comparison result
Create a variable called strictComparison and set it to the result of comparing $number and $stringNumber using the strict comparison operator ===.
PHP
Hint
Use === to compare both value and type.
4
OUTPUT: Print the results of both comparisons
Print the text 'Loose comparison result: ' followed by the value of $looseComparison, then print 'Strict comparison result: ' followed by the value of $strictComparison. Use var_export() to show boolean values as true or false.
PHP
Hint
Use print() and var_export() to show boolean values clearly.
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
Step 1: Understand loose comparison
Loose comparison (==) converts types if needed and then compares values.
Step 2: Understand strict comparison
Strict comparison (===) checks both value and type without conversion.
Final Answer:
== compares values after type conversion, === compares value and type exactly -> Option A
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
Step 1: Identify strict comparison operator
Strict comparison uses three equal signs: ===.
Step 2: Check syntax correctness
$a === $b; is valid syntax for strict comparison.
Final Answer:
$a === $b; -> Option D
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. 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
Step 1: Check if condition operator
The condition uses = which assigns 10 to $x instead of comparing.
Step 2: Understand effect of assignment in if
Assignment returns 10 (truthy), so 'Match' always prints, ignoring original $x value.
Final Answer:
Using assignment (=) instead of comparison (==) in if condition -> Option A
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
Step 1: Understand the requirement
We want to check if $input is integer 0 exactly, not string '0' or other falsy values.
Step 2: Choose strict comparison
== allows type conversion, so string '0' == 0 is true, which is not desired. === checks type and value strictly.
Final Answer:
if ($input === 0) -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.