0

我遇到了php问题,我只是不明白,

这是我的代码

$pieces = explode("|", $result);
if (count($pieces) == 3){
    $size = $pieces[2];
    echo "here";
    if($bw>=$pieces[2]){
        $manfi = $bw - $pieces[2];
        echo "<br>$manfi<br>";
        echo $size;
    }
    else{
        echo "is not big!!!";echo $size."aaa". $bw;
   }

这是输出

这里不大!!!183773480 aaa 1000000000000000

我只是想不通,这个数字 1000000000000000 怎么小于 183773480?

4

2 回答 2

3

问题是数字1000000000000000是数据类型字符串。如果然后将其与整数进行比较,它将被转换为整数。由于1000000000000000溢出 PHP 使用的 32 位整数,它将变为负值。

于 2012-09-19T21:16:43.293 回答
1

尝试:

$bw = intval($bw);
$pieces = array_map(intval, explode("|", $result));
if (count($pieces) == 3){
    $size = $pieces[2];
    echo "here";
    if($bw>=$pieces[2]){
        $manfi = $bw - $pieces[2];
        echo "<br>$manfi<br>";
        echo $size;
    }else{
        echo "is not big!!!";echo $size."aaa". $bw;
    }
}

我更改了 $pieces 以便它包含一个整数数组,并且我还确保 $bw 包含一个整数

于 2012-09-19T21:17:20.703 回答