1 $arr = array(0=>1,"aa"=>2, 3, 4); 2 3 foreach($arr as $key=>$val){ 4 print($key == "aa" ? 5 : $val); 5 }
输出结果:5534
why:
在PHP中两个值进行逻辑判断时,如果两个值的类型不一致PHP会自动把右边的值转换到左边的类型,
然后再进行判断。因此"aa"转换整形等于0,自然也就等于左边的0了。
字符型转换整形
示例:
var_dump((int)('b')); //0 var_dump((int)('very good')); //0 var_dump((int)('132very')); //132 var_dump((int)('ver1323')); //0
可以得出规律:以有效数字开头的,取有效数字。以非有效数字开头的都转换为0;