Цілі числа

int - це число з множини ℤ = {..., -2, -1, 0, 1, 2, ...}.

Дивіться також

Синтаксис

Цілі числа (int) можуть бути вказані в десятковій (підстава 10), шістнадцятковій (підстава 16), вісімковій (підстава 8) або двійковій (підстава 2) системі числення. Для завдання негативних цілих (int) використовують оператор заперечення

Для запису у восьмеричній системі числення перед числом ставлять (нуль). Починаючи з PHP 8.1.0 восьмічної нотації також може передувати 0oили0OДля записи в шестнадцатеричной системе счисления необходимо поставить перед числом0xДля записи в двоичной системе счисления необходимо поставить перед числом0b

Починаючи з PHP 7.4.0 цілочисленні літерали можуть містити підкреслення (_) між цифрами для кращого читання літералів. Ці підкреслення видаляються сканером PHP.

Приклад #1 Цілі числа

Loading...

Формально структура цілих чисел int прийнята в PHP 8.1.0 (раніше не допускалися восьмеричні префікси 0oили0O, а до PHP 7.4.0 не допускалося підкреслення):

десятичные        : [1-9][0-9]*(_[0-9]+)*
                  | 0

шестнадцатеричные : 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*

восьмеричные      : 0[oO]?[0-7]+(_[0-7]+)*

двоичные          : 0[bB][01]+(_[01]+)*

целые             : десятичные
                  | шестнадцатеричные
                  | восьмеричные
                  | двоичные

Розмір типу int залежить від платформи, хоча, як правило, максимальне значення приблизно дорівнює 2 мільярдам (це 32-бітове знакове). 64-бітові платформи зазвичай мають максимальне значення близько 9E18. PHP не підтримує беззнакові цілі числа (int). Розмір int може бути визначений за допомогою константи PHP_INT_SIZE, максимальне значення - за допомогою константи PHP_INT_MAX, а за допомогою константи PHP_INT_MIN можна визначити мінімальне значення.

Переповнення цілих чисел

Якщо PHP виявив, що число перевищує розмір типу int, він буде інтерпретувати його як float. Аналогічно, якщо результат операції лежить за межами типу int, він буде перетворений на float.

Приклад #2 Переповнення цілих на 32-бітових системах

Loading...

Приклад #3 Переповнення цілих на 64-бітових системах

Loading...

У PHP немає оператора цілого (int) поділу, для цього існує функція intdiv()Результатом1/2будет float0.5. Якщо привести значення до int, воно буде заокруглено вниз, тобто буде відкинута дрібна частина числа. Для більшого контролю за округленням використовують функцію round()

Loading...

Перетворення на ціле

Для явного преобразования в тип int используют приведение(int)или(integer). Однак у більшості випадків у приведенні типу немає необхідності, оскільки значення буде автоматично перетворено, якщо оператор, функція або структура, що управляє, вимагає аргумент типу int. Значення також може бути перетворено на тип int функцією intval()

Якщо значенням з типом resource перетворюється на значенням з типом int, результатом буде унікальний номер ресурсу, прив'язаний до resource під час виконання PHP програми.

Смотрите также:Маніпуляції з типами

Излогічноготипа

Логічне значення false перетворюється на (нуль), а true - в (единицу).

Изчисел із плаваючою точкою

При преобразовании из float в int число будет округленовниз. Починаючи з PHP 8.1.0 при неявному перетворенні неінтегрального числа з плаваючою точкою (float) у ціле число (int), яке втрачає точність, видається повідомлення про старіння.

Loading...

Якщо число з точкою, що плаває, перевищує розміри int (зазвичай ­± 2.15e+9 = 2^31 на 32-бітових системах та ± 9.22e+18 = 2^63 На 64-бітових системах, результат буде невизначеним, тому що float не має достатньої точності, щоб повернути правильний результат у вигляді цілого числа (int). У цьому випадку не буде виведено ні попередження, ні зауваження!

Зауваження :

Значення NaN та Infinity при приведенні до int стають рівними нулю, замість невизначеного значення залежно від платформи.

Увага

Не можна приводити невідомий дріб до типу int, оскільки це може дати несподівані результати.

Loading...

Докладніше про це розказано в попередження про точність чисел з плаваючою точкою

З рядків

Якщо рядок містить число або провідну числову послідовність, тоді вона буде перетворена на відповідне ціле число, в іншому випадку вона перетворюється на нуль (

З NULL

Значение**null** завжди перетворюється на нуль (

З інших типів

Застереження

Для других типов поведение преобразования в int не определеноНе потрібнополагаться на наблюдаемое ранее поведение, так как оно может измениться без предупреждения.