Bird
Raised Fist0
PHPprogramming~10 mins

Boolean type behavior in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Boolean type behavior
Start
↓
Evaluate expression
↓
Is expression true or false?
Yes→Execute true branch
No↓
Execute false branch
↓
End
The program evaluates an expression to true or false, then runs code based on that result.
Execution Sample
PHP
<?php
$val = 0;
if ($val) {
  echo "True";
} else {
  echo "False";
}
?>
This code checks if $val is true or false and prints the result.
Execution Table
StepExpressionEvaluated BooleanBranch TakenOutput
1$val = 0falseelse branchFalse
2End of if-else---
💡 $val is 0 which is false, so else branch runs and prints 'False'
Variable Tracker
VariableStartAfter Step 1Final
$valundefined00
Key Moments - 2 Insights
Why does 0 count as false in the if condition?
In PHP, 0 is considered false in boolean context, so the else branch runs (see execution_table step 1).
What happens if $val is a non-empty string?
Non-empty strings are true, so the if branch would run instead of else.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the boolean value of $val at step 1?
Atrue
Bfalse
Cnull
D1
💡 Hint
Check the 'Evaluated Boolean' column in execution_table row 1.
At which step does the program decide to print 'False'?
AStep 1
BStep 2
CNo step
DBefore step 1
💡 Hint
Look at the 'Output' column in execution_table row 1.
If $val was set to 5 instead of 0, what branch would run?
Aboth branches
Belse branch
Cif branch
Dnone
💡 Hint
Recall that non-zero numbers are true in PHP boolean context.
Concept Snapshot
Boolean type behavior in PHP:
- Values like 0, empty string, null are false.
- Non-zero numbers, non-empty strings are true.
- if(condition) runs true branch if condition is true.
- else branch runs if condition is false.
- Useful for controlling program flow based on truthiness.
Full Transcript
This example shows how PHP treats values as true or false in conditions. The variable $val is set to 0, which PHP sees as false. The if statement checks $val. Since it is false, the else branch runs and prints 'False'. This teaches that 0 is false in PHP boolean context. Changing $val to a non-zero number would make the if branch run instead. Understanding which values count as true or false helps control program decisions.

Practice

(1/5)
1. In PHP, which of the following values is considered true when converted to a boolean?
easy
A. The string "false"
B. The integer 0
C. An empty string ""
D. Any non-zero number

Solution

  1. Step 1: Understand PHP boolean conversion rules

    In PHP, zero (0), empty string (""), and the string "0" are considered false. Any non-zero number is true.
  2. Step 2: Evaluate each option

    Any non-zero number is a non-zero number, so it converts to true. Options B and C are false values. The string "false" is a non-empty string, so it is true, but "false" as a string is not false boolean.
  3. Final Answer:

    Any non-zero number -> Option D
  4. Quick Check:

    Non-zero number = true [OK]
Hint: Non-zero numbers are true; zero and empty strings are false [OK]
Common Mistakes:
  • Thinking string "false" is boolean false
  • Assuming zero is true
  • Confusing empty string with true
2. Which of the following is the correct way to explicitly cast a variable $var to boolean in PHP?
easy
A. $bool = boolean($var);
B. $bool = bool($var);
C. $bool = (bool) $var;
D. $bool = to_bool($var);

Solution

  1. Step 1: Recall PHP casting syntax

    PHP uses (bool) or (boolean) to cast variables to boolean type. The function bool() or boolean() does not exist.
  2. Step 2: Check each option

    $bool = (bool) $var; uses (bool) casting which is correct. Options B, C, and D use invalid function calls.
  3. Final Answer:

    $bool = (bool) $var; -> Option C
  4. Quick Check:

    Use (bool) for casting [OK]
Hint: Use (bool) before variable to cast to boolean [OK]
Common Mistakes:
  • Using non-existent functions like bool()
  • Confusing casting with function calls
  • Using wrong keywords like boolean()
3. What will be the output of the following PHP code?
$a = 0;
$b = "0";
$c = "false";
$d = [];

echo (int)(bool)$a . "," . (int)(bool)$b . "," . (int)(bool)$c . "," . (int)(bool)$d;
medium
A. 0,0,1,0
B. 0,1,1,0
C. 0,0,0,0
D. 1,1,1,1

Solution

  1. Step 1: Convert each variable to boolean

    $a = 0 is false, $b = "0" is false, $c = "false" is a non-empty string so true, $d = [] (empty array) is false.
  2. Step 2: Cast booleans to int and concatenate

    False becomes 0, true becomes 1. So output is "0,0,1,0".
  3. Final Answer:

    0,0,1,0 -> Option A
  4. Quick Check:

    False=0, True=1 [OK]
Hint: Empty, zero, and "0" are false; non-empty strings true [OK]
Common Mistakes:
  • Assuming string "false" is false boolean
  • Thinking empty array is true
  • Mixing string and boolean conversion
4. Consider this PHP code snippet:
$value = "";
if ($value == true) {
    echo "Yes";
} else {
    echo "No";
}

Why does it output "No" and how to fix it to check if $value is truthy?
medium
A. Because empty string is false; use (bool)$value in if condition
B. Because == does loose comparison; use === true to fix
C. Because $value is string; cast to int before comparison
D. Because PHP treats all strings as false; use strlen() instead

Solution

  1. Step 1: Understand why empty string is false

    In PHP, empty string "" is considered false in boolean context, so if ($value == true) fails.
  2. Step 2: Fix by casting to boolean in condition

    Use if ((bool)$value) or simply if ($value) to check truthiness correctly.
  3. Final Answer:

    Because empty string is false; use (bool)$value in if condition -> Option A
  4. Quick Check:

    Empty string = false; cast to bool to check [OK]
Hint: Empty string is false; cast variable to bool in conditions [OK]
Common Mistakes:
  • Using == true instead of casting
  • Assuming all strings are true
  • Trying to cast string to int unnecessarily
5. You want to filter an array in PHP to keep only truthy values (non-empty, non-zero, etc.). Which code correctly uses boolean behavior to achieve this?
$arr = [0, 1, "", "hello", false, true, null, [], [1]];
$filtered = array_filter($arr, function($v) {
    // What to put here?
});
print_r($filtered);
hard
A. return $v == true;
B. return (bool)$v;
C. return $v === true;
D. return !empty($v);

Solution

  1. Step 1: Understand array_filter callback

    The callback should return true for values to keep. Casting to (bool) returns true for all truthy values.
  2. Step 2: Compare options

    return (bool)$v; casts to boolean correctly. return $v == true; uses loose comparison which may include unwanted values. return $v === true; keeps only true boolean, excluding truthy values. return !empty($v); excludes some truthy values like true boolean but empty arrays are false.
  3. Final Answer:

    return (bool)$v; -> Option B
  4. Quick Check:

    Cast to bool to filter truthy values [OK]
Hint: Use (bool) cast in filter callback to keep truthy values [OK]
Common Mistakes:
  • Using strict === true excludes truthy but non-true values
  • Using == true includes unwanted falsy values
  • Using empty() excludes some truthy values
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