PHP比较运算符怎么看?

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:23:45
<?PHP
$value="100";
echo "\$value = \"$value\"";
echo "<br>\$value==ture: ";
var_dump($value==true); //结果为:bool(true)
echo "<br>\$value==false: ";
var_dump($value==false); //结果为:bool(false)
echo "<br>\$value===true: ";
var_dump($value===true); //结果为:bool(true)
echo "<br>(10/2.0 !== 5): ";
var_dump(10/2.0 !==5); //结果为:bool(true)
?>
第一个var_dump($value==true); 怎么会返回true?是怎么比较的啊?
还有最后两个应该是bool(false)吧?
$value是字符串型,值为100,而true是布尔型,值应该是1吧,这两个用==怎么会返回true?

PHP 比较时 会自动进行类型转换
比如 int 与double型比较大小时,他会自动先把int型转换为double型再进行比较大小

当字符串型 与布尔型比较的时候
字符串自动转换为布尔型
转换规则为 字符串为空(即 $str="" 或 $str="\0" 或 str= NULL )时为FALSE,其他情况为TRUE

$value="100";
echo "\$value = \"$value\"";
echo "<br>\$value==ture: ";
var_dump($value==true); //结果为:bool(true) php中的变量是弱类型,所有非false的全部为真;
echo "<br>\$value==false: ";
var_dump($value==false); //结果为:bool(false)
echo "<br>\$value===true: ";
var_dump($value===true); //结果为:bool(true) 这里应该是 false "==="运算符运算的不仅是值,而且还有类型,字符型肯定不能和逻辑型相等了.
echo "<br>(10/2.0 !== 5): ";
var_dump(10/2.0 !==5); //结果为:bool(true) 10/2.0 是float型,而5是int型,所以也不全等,输出值为true
?>

你考虑一下if($value){}语句里面的条件判断,就相当于if($value==true){}$value的值是不一定要等于1的,是非0就行