Search code examples
phpinteger-overflow

Minimum integer in PHP 7


In interactive mode on PHP 7 (64 bit Ubuntu),

php > echo true;
1
php > echo false; # no output for false
php > echo PHP_INT_MIN == -9223372036854775808;
1
php > echo is_int(PHP_INT_MIN);
1
php > echo is_int(-9223372036854775808);

Why doesn't the last line output 1?


Solution

  • var_dump() is your friend.

    var_dump(
        PHP_INT_MIN,
        is_int(PHP_INT_MIN),
        -9223372036854775808,
        is_int(-9223372036854775808)
    );
    
    /* Output:
    int(-9223372036854775808)
    bool(true)
    float(-9.2233720368548E+18)
    bool(false)
    */