Что такое целочисленный тип (integer) в PHP?

«Что такое целочисленный тип (integer) в PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

int (или integer) — это скалярный тип данных в PHP для представления целых чисел. Он может быть положительным, отрицательным или нулём.

Особенности и ограничения:

  • Размер: Зависит от платформы. На 64-битных системах диапазон составляет от PHP_INT_MIN (-9,223,372,036,854,775,808) до PHP_INT_MAX (9,223,372,036,854,775,807). Значения можно получить через константы PHP_INT_SIZE, PHP_INT_MAX, PHP_INT_MIN.
  • Переполнение: Если целочисленная операция выходит за пределы int, результат автоматически преобразуется в float.
  • Системы счисления: Поддерживается определение чисел в двоичной, восьмеричной, десятичной и шестнадцатеричной системах.

Примеры объявления:

// Десятичные числа
$a = 42;
$b = -273;
$c = 0; // Ноль

// Другие системы счисления
$bin = 0b11111111; // Двоичное: 255
$oct = 0123;       // Восьмеричное: 83 (префикс 0)
$hex = 0x1A;       // Шестнадцатеричное: 26

var_dump($a, $bin, $oct, $hex);
// Вывод: int(42) int(255) int(83) int(26)

Приведение к типу int:

// Явное приведение
$str = "123.9abc";
$intVal = (int) $str; // 123 (дробная часть и нечисловые символы отбрасываются)

$boolVal = (int) true;  // 1
$nullVal = (int) null;  // 0

// Функции для проверки
$value = 100;
var_dump(is_int($value));     // true
var_dump(is_integer($value)); // true (псевдоним is_int)
var_dump(ctype_digit($value)); // false (работает только со строками)

Практическое замечание: При работе с внешними данными (например, из $_GET или $_POST) числа приходят в виде строк. Для арифметических операций лучше явно приводить их к int с помощью (int), intval() или фильтра filter_var($value, FILTER_VALIDATE_INT).