Home  >  Article  >  Backend Development  >  Why does `$a == NULL` evaluate to true when `$a` is an empty string in PHP?

Why does `$a == NULL` evaluate to true when `$a` is an empty string in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 13:31:02439browse

Why does `$a == NULL` evaluate to true when `$a` is an empty string in PHP?

NULL in PHP: When an Empty String Isn't Null

Consider the following PHP code:

<code class="php">$a = '';
if($a == NULL) {
  echo 'is null';
}</code>

Why does it output "is null" when $a is clearly an empty string? Is this a bug?

Understanding Equality and Identity

The key to understanding this behavior lies in the distinction between equality (==) and identity (===). In PHP, == checks if two operands have the same value, while === checks if they have the same value and type.

In the code above, $a is an empty string, which is a falsy value. In PHP, falsy values are treated as equal to NULL, false, 0, and empty arrays. Therefore, $a == NULL evaluates to true.

Using === to Check for NULL

To specifically check if a variable is NULL, use the identity operator (===):

<code class="php">if($variable === NULL) {...}</code>

Note the triple equals sign. By using ===, you ensure that the variable is not only falsy, but also of type NULL.

Conclusion

The empty string in PHP is not considered NULL. To explicitly check for NULL, use the identity operator (===). This distinction is crucial for ensuring accurate comparison and logic in your PHP code.

The above is the detailed content of Why does `$a == NULL` evaluate to true when `$a` is an empty string in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn