Целые числа в PHP

Доброе время суток участники образовательной IT площадки GeekSpace. Меня зовут Юрий Сиротенко и сегодня мы поговорим о целых числах, а точнее о типе данных integer в рамках PHP

Также вы можете посмотреть видео урок "Целые числа" в рамках нашего курса "Введение в PHP" перейдя по этой ссылке

Введение

Давайте для начала предметно разберемся, что такое целое число. Целые числа - это натуральные числа, число ноль, а также отрицательные числа. Натуральные числа это такие числа, которые возникают естественным образом при счёте. Например числа -1, 0, 1 и т.д можно назвать целыми.

На числовой оси целые числа можно выразить следующим образом

Множество целых чисел обозначается следующим символом

В PHP Integer - это число из множества ℤ = {..., -2, -1, 0, 1, 2, ...}.

Форма записи

Целочисленный тип данных в мире PHP может обозначаться двумя способами:

  1. integer - полный
  2. int - сокращенный

Например в результате применения функции “var_dump” которой в качестве аргумента было передано значение целочисленного типа будет фигурировать сокращенная запись integer

var_dump(1); // int(1)

Но если воспользоваться функцией gettype(), то она вернет полный вариант:

echo gettype(1); // integer

При указании типа значений в параметрах методов и функций допускается указание только сокращенного варианта. Аналогично и в возвращаемых значениях

function test(int $x) : int
{
    return $x;
}

При попытке указать полный вариант, на момент версии PHP 7.3.2 будет выброшено исключение TypeError

Системы счисления

Целые числа могут быть указаны в десятичной, шестнадцатеричной, восьмеричной и двоичной системе счисления. Для задания отрицательных целых используется оператор отрицания “-”

Пример

Система счисления

$x = 324;

десятичное число

$x = -324;

отрицательное число

$x = 0123;

восьмеричное число (эквивалентно 83 в десятичной системе)

$x = 0x1A;

шестнадцатеричное число (эквивалентно 26 в десятичной системе)

$x = 0b11111111;

двоичное число (эквивалентно 255 в десятичной системе)

Обратите особое внимание на то, что некоторое число с ведущим нулем и без него - это совершенно разное представление этих чисел

$x = 123;
$x = 0123;

Число 123 с ведущим нулем - это число объявленное в восьмеричной системе счисления, которое при переводе в десятичную становится равным 83.

Диапазон

Диапазон возможных значений типа integer в общем случае определить невозможно, так как размер типа integer зависит от платформы. Например в 32 битных машинах размер может достигать до двух миллиард, а в 64 битных намного больше (9223372036854775807).

С версии PHP 5.0.5 размер integer может быть определен с помощью константы PHP_INT_SIZE. Данная константа принимает целочисленное значение в байтах

Максимальное пороговое значение целочисленного типа данных можно указать при помощи константы PHP_INT_MAX, а минимальное при помощи PHP_INT_MIN

Продвижение типов из integer в float (переполнение целых чисел)

Если целочисленное значение превысит максимально возможный порог, то произойдет так называемое продвижение к типу данных float

$x = 9223372036854775807; // int(9223372036854775807)
$x = 9223372036854775808; // float(9.2233720368548E+18)

Деление целых чисел

В PHP результатом деления двух чисел всегда является значение типа float

$x = 1 / 2; // float(0.5)

Если привести значение float к integer, оно будет округлено вниз, то есть будет отброшена дробная часть числа

$x = (int) (3 / 2); // int(1)

Но в PHP версии 7.0 появилась новая функция для целочисленного деления “intdiv” которая возвращает результат целочисленного деления делимого на делитель

$x = intdiv(3, 2); // int(1)

О преобразованиях в целочисленный тип данных мы поговорим в последующих конспектах

Информация

Автор конспекта


Дата создания: 20.03.2019
Категория: PHP