Signed Integer

PHP integers are always signed: they use one bit to represent the sign, allowing both negative and positive values. PHP does not support unsigned integers.

On a 64-bit platform, a PHP integer spans from PHP_INT_MIN (-9,223,372,036,854,775,808, or -2^63) to PHP_INT_MAX (9,223,372,036,854,775,807, or 2^63 - 1). On a 32-bit platform, the range is -2^31 to 2^31 - 1.

When an operation would produce a value outside that range, PHP silently promotes the result to a float, which has a larger range but reduced precision for large integers.

Languages such as C or Rust distinguish signed integers (int, i64) from unsigned integers (uint, u64). PHP makes no such distinction: all integers are signed.

<?php

$max = PHP_INT_MAX; // 9223372036854775807
$min = PHP_INT_MIN; // -9223372036854775808

// Overflow promotes to float silently
$overflow = PHP_INT_MAX + 1; // float(9.2233720368548E+18)

var_dump($overflow); // float, not integer

?>

Documentation

Related : integer, Sign, Positive Integer, PHP_INT_MAX, PHP_INT_MIN, Floating Point Numbers, Overflow