php bool false 和 数值 0
转:http://home.phpchina.com/space.php?uid=108724&do=blog&id=54899
PHP 是类型宽松的语言,这意味着会 将布尔值 false 和整型值 0 视为相同(甚至 c 也把 0 和 false 视为等价)。可以使用一下脚本来确定 0 与布尔值 false 的等价性:
<?php
$test_var = 0;
if($test_var == false){
echo "yes";
}else{
echo "no";
}
?>
输出:yes
_________________________________________________________________________________
<?php
$test_var = 0;
if($test_var !== false){
echo "yes";
}else{
echo "no";
}
?>
输出:yes
_________________________________________________________________
问题来了,布尔值 false 和整型值 0 明显是不同的。
PHP 有一个 gettype() 函数,得到变量的类型。可以使用 === 运算符(看好了,有三个等号)。和 == 运算符 的区别在于该运算符同时比较数据的值和类型。
当终止条件中涉及不同的变量类型时,通过使用 ===和 !==运算符进行强类型检查是很重要的。
页:
[1]