因为PHP式弱类型语言,变量的类型是运行的上下文决定的。很多时候运行存在隐式转换问题,给代码带来异常情况。
例子
var_dump(0 == 'all')
// true
// 这里会把 all 转换成整型0
var_dump(0 === 'all')
// false
// 类型不变
$array = [
'a' => 1,
'b' => true,
'c' => false,
'd' => 'ttt',
];
$int = 0;
$string = "";
foreach($array as $item) {
$string .= $item;
$int += $item;
}
var_dump($string, $int);
//结果:11ttt
// 2
//结果:11ttt
//这里面拼接字符串,涉及到boolean 转string ,true=> 1, false =>空