两个不相等的数字.PHP判断竟然为true啊?..PHP是不是有问题啊.

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:36:35
<?
if('440902198001010020'=='440902198001010021'){
echo '是';
}else{
echo '否';
}

echo '<hr>';

if(440902198001010020==440902198001010021){
echo '是';
}else{
echo '否';
}

echo '<hr>';
?>

结果为什么输出"是"吖..PHP是不是有问题啊.
用三个===号也是不行吖..还是返回true

超出量程。这个数字在PHP看来等效于

4.40902198001E+17

这样对比当然是相同的。真有必要的话。你可以把两个数字截成两半分别对比。

$a=array('440902198','001010020');
$b=array('440902198','001010021');
if($a==$b){
echo '是';
}else{
echo '否';
}

你用什么方法截是你的事情了。上面代码运行结果为否

用 === 就可以了 数字太大

<?php
if('440902198001010020'==='440902198001010021'){
echo '是';
}else{
echo '否';
}

echo '<hr>';

if(440902198001010020 === 440902198001010021){
echo '是';
}else{
echo '否';
}

echo '<hr>';
?>
不是PHP出了问题,而是你的数据长度太长
整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。PHP 不支持无符号整数。

而==是等于,===为严格等于
等于会进行处理再判断,而严格等于不处理直接判断

用 === 是不可以的!

骗人的东西~~