不希望比较一个变量和一个常量时意外地赋值。应当使用:
if(12 == $dwarves){ ... }
而不是:
if($dwarves==12){ ...}
把常量放在左边会触发赋值操作符的一个解析错误。
如果将一个常量放在一个比较表达式的左边,就会把这个比较强制为该常量的类型。如果要比较一个整数和一个变量(这个变量可能为整数,也可能是字符串),这就会带来问题。
$dwarves为0时,0$dwarves为true,不过当$dwarves为sleepy时,0$dwarves也为true。由于比较表达式左边有一个整数(0),PHP在比较之前会把右边(字符串sleepy)转换为一个整数(0)。
为了避免这种情况,应当使用恒等操作符(0 === $dwarves)。