Booleans help us decide if something is true or false in our code. They make choices simple and clear.
Boolean type behavior in PHP
<?php $variable = true; // or false ?>
Boolean values in PHP are true and false (all lowercase).
They are often used in conditions like if statements to control the flow.
<?php $is_raining = true; if ($is_raining) { echo "Take an umbrella."; } ?>
false and the ! (not) operator to deny access.<?php $has_access = false; if (!$has_access) { echo "Access denied."; } ?>
<?php $logged_in = (5 > 3); // true because 5 is greater than 3 var_dump($logged_in); ?>
This program decides what to do based on if it is sunny and if it is the weekend. It uses boolean values and logical operators.
<?php // Simple program to show boolean behavior $is_sunny = true; $is_weekend = false; if ($is_sunny && $is_weekend) { echo "Go to the park!"; } elseif ($is_sunny && !$is_weekend) { echo "Go to work, but enjoy the sun."; } else { echo "Stay inside."; } ?>
In PHP, many values can be converted to boolean automatically, like 0 is false, and any non-zero number is true.
Use var_dump() to see the exact boolean value during debugging.
Remember that strings like "" (empty) are false, but "0" (string zero) is also false in PHP.
Booleans are simple true or false values used to make decisions in code.
They help control what your program does by checking conditions.
Logical operators like && (and), || (or), and ! (not) work with booleans.
Practice
true when converted to a boolean?Solution
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.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.Final Answer:
Any non-zero number -> Option DQuick Check:
Non-zero number = true [OK]
- Thinking string "false" is boolean false
- Assuming zero is true
- Confusing empty string with true
$var to boolean in PHP?Solution
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.Step 2: Check each option
$bool = (bool) $var; uses (bool) casting which is correct. Options B, C, and D use invalid function calls.Final Answer:
$bool = (bool) $var; -> Option CQuick Check:
Use (bool) for casting [OK]
- Using non-existent functions like bool()
- Confusing casting with function calls
- Using wrong keywords like boolean()
$a = 0; $b = "0"; $c = "false"; $d = []; echo (int)(bool)$a . "," . (int)(bool)$b . "," . (int)(bool)$c . "," . (int)(bool)$d;
Solution
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.Step 2: Cast booleans to int and concatenate
False becomes 0, true becomes 1. So output is "0,0,1,0".Final Answer:
0,0,1,0 -> Option AQuick Check:
False=0, True=1 [OK]
- Assuming string "false" is false boolean
- Thinking empty array is true
- Mixing string and boolean conversion
$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?Solution
Step 1: Understand why empty string is false
In PHP, empty string "" is considered false in boolean context, so if ($value == true) fails.Step 2: Fix by casting to boolean in condition
Use if ((bool)$value) or simply if ($value) to check truthiness correctly.Final Answer:
Because empty string is false; use (bool)$value in if condition -> Option AQuick Check:
Empty string = false; cast to bool to check [OK]
- Using == true instead of casting
- Assuming all strings are true
- Trying to cast string to int unnecessarily
$arr = [0, 1, "", "hello", false, true, null, [], [1]];
$filtered = array_filter($arr, function($v) {
// What to put here?
});
print_r($filtered);Solution
Step 1: Understand array_filter callback
The callback should return true for values to keep. Casting to (bool) returns true for all truthy values.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.Final Answer:
return (bool)$v; -> Option BQuick Check:
Cast to bool to filter truthy values [OK]
- Using strict === true excludes truthy but non-true values
- Using == true includes unwanted falsy values
- Using empty() excludes some truthy values
Ready to prove it?
Pass the test and this pattern moves unknown
