Understanding PHP Types – Booleans

What is a Boolean?

In PHP, a Boolean is a data type that can have only two values:

true: Represents a positive or affirmative state.

false: Represents a negative or false state.

Boolean values are often used in conditional statements, …


This content originally appeared on DEV Community and was authored by Abu Hurayra

What is a Boolean?

In PHP, a Boolean is a data type that can have only two values:

  • true: Represents a positive or affirmative state.
  • false: Represents a negative or false state.

Boolean values are often used in conditional statements, comparisons, and logical operations. It is important to note that both true and false are case-insensitive. So, true, True, truE, TRUE are all valid.

Creating Boolean Variables

You can create a Boolean variable by assigning the values true or false directly:

Example:

<?php
$isAvailable = true;  // Boolean variable set to true
$isLoggedIn = false;  // Boolean variable set to false

var_dump($isAvailable); // Output: bool(true)
var_dump($isLoggedIn);  // Output: bool(false)
?>

The var_dump() function is used here to display the type and value of the variables.

Boolean Conversion

In PHP, many data types can be converted to Boolean. A value can be type casted into boolean using (bool). Generally this is not necessary because when a value is used in a logical context it will be automatically interpreted as a value of type bool.

When converting to boolean, the following values will return false:

  • the boolean false itself
  • the integer value 0
  • the float values 0.0 and -0.0
  • empty string, ""
  • string with a single zero, "0"
  • an empty array
  • the type null
  • variables that are unset
  • some other complex values

All other values are considered true, including resource and NAN.

Example:

<?php
$values = [0, 1, "", "Hello", [], [1, 2, 3], null, 0.0, 3.14];
foreach ($values as $value) {
    var_dump((bool)$value);
}
?>

Output:


bool(false) // 0
bool(true) // 1
bool(false) // ""
bool(true) // "Hello"
bool(false) // []
bool(true) // [1, 2, 3]
bool(false) // null
bool(false) // 0.0
bool(true) // 3.14

Using Booleans in Conditional Statements

Booleans are primarily used in conditional statements such as if, else, and switch to control the flow of the program.

Example:

<?php
$isUserLoggedIn = true;

if ($isUserLoggedIn) {
    echo "Welcome, User!"; // This message will be displayed
} else {
    echo "Please log in.";
}
?>

In this example, since $isUserLoggedIn is true, the message “Welcome, User!” will be displayed.

Comparison Operators and Booleans

PHP provides various comparison operators that return Boolean values:

  • Equality (==): Checks if values are equal.
  • Identity (===): Checks if values and types are identical.
  • Inequality (!= or <>): Checks if values are not equal.
  • Non-identity (!==): Checks if values or types are not identical.
  • Greater than (>) and Less than (<): Used for numeric comparisons.

Example:

<?php
$a = 10;
$b = "10";

var_dump($a == $b);   // Output: bool(true)  - values are equal
var_dump($a === $b);  // Output: bool(false) - types are different
var_dump($a > 5);     // Output: bool(true)  - 10 is greater than 5
var_dump($a != 10);   // Output: bool(false) - 10 is equal to 10
?>

Logical Operators and Booleans

Logical operators are used to combine or negate Boolean expressions:

  • && (AND): Returns true if both operands are true.
  • || (OR): Returns true if at least one operand is true.
  • ! (NOT): Negates a Boolean expression.

Example:

<?php
$isMember = true;
$hasPaid = false;

if ($isMember && $hasPaid) {
    echo "Access granted.";  // Will not be executed
} else {
    echo "Access denied.";   // Output: Access denied.
}

$isAdmin = !$isMember;
var_dump($isAdmin);  // Output: bool(false) - negates true to false
?>

Some Boolean Caveats

1. Loose Comparisons

Using == can lead to unexpected results due to type juggling. Always use === for strict comparisons.

Example:

<?php
var_dump(0 == false);  // Output: bool(true)
var_dump(0 === false); // Output: bool(false)
?>

In the first case, 0 and false are considered equal because 0 converts to false when compared loosely.

2. Falsy Values

Certain values like 0, "0", and empty arrays are considered false, which can sometimes lead to logical errors.

Example:

<?php
$var = "0";

if ($var) {
    echo "True";  // This will not be displayed
} else {
    echo "False"; // Output: False
}
?>

3. Short-Circuit Evaluation

Logical operators && and || use short-circuit evaluation. This means if the result is determined by the first operand, the second operand is not evaluated.

Example:

<?php
$x = false && foo(); // foo() will not be called because $x is false
$y = true || foo();  // foo() will not be called because $y is true
?>

4. Case Sensitivity

true and false are case-insensitive, so True, FALSE, and fAlSe are valid but not recommended for consistency.


This content originally appeared on DEV Community and was authored by Abu Hurayra


Print Share Comment Cite Upload Translate Updates
APA

Abu Hurayra | Sciencx (2024-10-21T02:00:00+00:00) Understanding PHP Types – Booleans. Retrieved from https://www.scien.cx/2024/10/21/understanding-php-types-booleans/

MLA
" » Understanding PHP Types – Booleans." Abu Hurayra | Sciencx - Monday October 21, 2024, https://www.scien.cx/2024/10/21/understanding-php-types-booleans/
HARVARD
Abu Hurayra | Sciencx Monday October 21, 2024 » Understanding PHP Types – Booleans., viewed ,<https://www.scien.cx/2024/10/21/understanding-php-types-booleans/>
VANCOUVER
Abu Hurayra | Sciencx - » Understanding PHP Types – Booleans. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/10/21/understanding-php-types-booleans/
CHICAGO
" » Understanding PHP Types – Booleans." Abu Hurayra | Sciencx - Accessed . https://www.scien.cx/2024/10/21/understanding-php-types-booleans/
IEEE
" » Understanding PHP Types – Booleans." Abu Hurayra | Sciencx [Online]. Available: https://www.scien.cx/2024/10/21/understanding-php-types-booleans/. [Accessed: ]
rf:citation
» Understanding PHP Types – Booleans | Abu Hurayra | Sciencx | https://www.scien.cx/2024/10/21/understanding-php-types-booleans/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.