Thursday, February 16, 2012

Difference between == and === in php

Two of the many comparison operators used by PHP are '==' (i.e. equal) and '===' (i.e. identical). The difference between the two is that '==' should be used to check if the values of the two operands are equal or not. On the other hand, '===' checks the values as well as the type of operands.

Let me explain more using some examples:

'==' (Equal):

 if("22" == 22) echo "YES";
 else           echo "NO"; 
The code above will print "YES". The reason is that the values of the operands are equal. Whereas when we run the example code below:

'===' (Identical):

if("22" === 22) echo "YES"; else echo "NO";

The result we get is "NO". The reason is that although values of both operands are same their types are different, "22" (with quotes) is a string while 22 (w/o quotes) is an integer. But if we change the code above to the following:

if("22" === (string)22) echo "YES"; else echo "NO";

Then, the result will be "YES". Notice that we changed the type of right operand to a string which is the same as the left operand (i.e. string). Now, the types and values of both left and right operands are the same hence both operands are identical.

No comments:

Post a Comment