php中不同类型的变量做==比较时,等号右侧的值会转换为左侧值的类型
$items = array(0=>1,"ok"=>2, 3, 4); foreach($items as $key=>$val) { print($key == "ok" ? 5 : $val); } // 输出结果为 5534,why?
原来php中不同类型的变量做==比较时,会先将等号右侧的值转换为左侧值的类型,“ok”转换为数字也是0,因此结果为 5534。为避免这种情况应尽量使用 === 判断
$a = 3; $b = 5; if ($a = 3 || $b = 7) { $a++; $b++; } var_dump($a); //true var_dump($b); //6