php中不同类型的变量做==比较时,等号右侧的值会转换为左侧值的类型作者:luke

$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

时间:2018-3-26 分类:练习