PHP隐式类型转换常见问题

因为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 =>空

注意这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。

你可能感兴趣的:(php)