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