PHP operator == vs ===

The operator == casts between two different types if they are different, while the === operator performs a ‘typesafe comparison’. That means that it will only return true if both operands have the same type and the same value.


1 === 1: true
1 == 1: true
1 === "1": false // 1 is an integer, "1" is a string
1 == "1": true // "1" gets casted to an integer, which is 1
"foo" === "foo": true // both operands are strings and have the same value

However, two instances of the same class do NOT match the === operator. Example:

$a = new stdClass();
$a->foo = "bar";
$b = clone $a;
var_dump($a === $b); // bool(false)

By Keenlio, December 17, 2013

What do you think?

Leave a Reply

Your email address will not be published. Required fields are marked *

× 8 = sixty four

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>