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;
   }

そしてここに出力があります

ここは大きくありません!!!183773480aaa 1000000000000000

私はそれを理解することができません、この数1000000000000000はどのように183773480よりも小さいですか?

4

2 に答える 2

3

問題は、数値1000000000000000がデータ型文字列であることです。それを整数と比較すると、整数にキャストされます。1000000000000000PHP が使用する 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 に答える