php如果大于

时间:2012-09-19 21:11:59

标签: php if-statement logic

我遇到了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?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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包含一个整数