Search code examples
phpcomparison-operators

The importance of using === instead of == in php!


Today only I have noticed and found out the importance of using === operator. You can see it in the following example:

$var=0;
if ($var==false) echo "true"; else echo "false";  //prints true
$var=false;
if ($var==false) echo "true"; else echo "false";  //prints true
$var=0;
if ($var===false) echo "true"; else echo "false";  //prints false
$var=false;
if ($var===false) echo "true"; else echo "false";  //prints true 

The question is that, are there any situations where it is important to use === operator instead of using == operator?


Solution

  • Of course, just one example: array_search()

    Warning

    This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

    Basically if you use any function that returns a value on success but FALSE on failure, you should check the result with === to be sure (otherwise why would there be a big red warning box? ;))


    Further examples: next(), current()
    or as also mentioned string functions as strpos(), stripos(), etc.

    Even substr() although it is not mentioned explicitly:

    Returns the extracted part of string or FALSE on failure.

    But what if the extracted part is"0"? It also evaluates to FALSE, but it is not an error.