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;