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.