minte9
LearnRemember



Identity

True if only operands are of the same data type and the same value.
 
/**
 * Identical operator
 */

$x1 = 'xn--google.com';
$x2 = 'google.com';

var_dump(stripos($x1, 'xn--') === 0); // true - Correct
var_dump(stripos($x2, 'xn--') == 0);  // true - Incorrect

Confusion

It's easy to confuse the assignment operator = for the comparison operator ==
 
/**
 * Comparition operator, prone to error
 */

$a = 10;
$b = 9;

var_dump($a == 10);     // true
var_dump(10 == $a);     // true, better

if ($b = 10) echo $b;   // 10 - Incorrect

Inequality

While the process is clear for numbers, things change a bit for other data types.
 
/** 
 * Comparing strings
 *
 * D > C, a > A 
 * 
 * ASCII value of a (97)
 * ASCII value of A (65)
 */

var_dump("ABC" > "ABD");        // false
var_dump("apple" > "Apple");    // true



  Last update: 450 days ago