madman
madman

Reputation: 319

php if is bigger than

I had problem with php I just dont get it,

here is my code

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

and here is the out put

hereis not big!!!183773480 aaa 1000000000000000

i just cant figure it out , how this number 1000000000000000 is less than 183773480 ?

Upvotes: 0

Views: 510

Answers (2)

DiverseAndRemote.com
DiverseAndRemote.com

Reputation: 19888

try:

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

I changed $pieces so that it contains an array of integers and I also made sure that $bw contains an integer

Upvotes: 1

clentfort
clentfort

Reputation: 2504

The problem is that the number 1000000000000000 is of the datatype string. If you then compare it to an integer it will be casted to an integer. Since 1000000000000000 overflows a 32bit integer that PHP uses it will become a negative value.

Upvotes: 3

Related Questions