Bird
Raised Fist0
PHPprogramming~15 mins

Boolean type behavior in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Boolean type behavior
📖 Scenario: Imagine you are creating a simple system to check if certain items are available in stock. You will use boolean values to represent availability.
🎯 Goal: You will create a list of items with their availability as boolean values, set a threshold for availability, check each item against this threshold, and finally print the availability status.
📋 What You'll Learn
Create an associative array with items and their availability as boolean values
Create a variable to represent the availability threshold
Use a loop to check each item's availability against the threshold
Print the availability status for each item
💡 Why This Matters
🌍 Real World
Boolean values are often used to represent simple yes/no or true/false states, such as availability, on/off switches, or feature toggles in software.
💼 Career
Understanding boolean behavior is essential for programming logic, decision making, and controlling program flow in almost all software development jobs.
Progress0 / 4 steps
1
Create the items availability array
Create an associative array called items with these exact entries: 'apple' => true, 'banana' => false, 'orange' => true
PHP
Hint

Use square brackets to create the array and assign boolean values true or false to each item.

2
Set the availability threshold
Create a boolean variable called threshold and set it to true
PHP
Hint

Just assign the value true to the variable $threshold.

3
Check availability against threshold
Use a foreach loop with variables $item and $available to iterate over $items. Inside the loop, create a boolean variable $isAvailable that is true if $available equals $threshold, otherwise false
PHP
Hint

Use the strict equality operator === to compare booleans.

4
Print the availability status
Inside the foreach loop, add a print statement that outputs: "$item is available" if $isAvailable is true, otherwise "$item is not available"
PHP
Hint

Use an if statement to check $isAvailable and print the correct message.

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