Difference between '==' (equal) and '===' (identical) comparison operators in PHP (with examples)

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.

In a nutshell, whenever you want to compare the values as well as the types of operands you'll use '===' otherwise you use '=='.

Please feel free to use the comments form below if you have any questions or need more explanation on anything. I recommend thoroughy testing on a production-like test system first before moving to production. Use the icons below to share this tutorial with your friends.

tags cloud icon tags cloud


popular searches icon popular searches