Цілі числа у PHP

integerце число з набору Z =

Цілі числа можуть специфікуватися в десятирічній (база 10), 16-річній (база 16) або 8-річній (база 8) нотації з необов'язковим знаком (- або +).

Якщо ви використовуєте 8-річну нотацію, першим символом числа має бути 0 (нуль), для 16-річної нотації першими символами числа будуть 0x.

Приклад 6-1. Цілочисленні літерали

Розмір integer залежить від платформи, хоча максимальне значення близько 2 мільйонів є звичайним (тобто 32-бітове знакове). PHP не підтримує беззнакові integers.

Переповнення

Якщо ви специфікуєте число за рамками діапазону типуinteger, воно буде інтерпретовано якfloat. Також, якщо ви виконуєте операцію, яка дає в результаті число за межами діапазону типуinteger, буде повернутоfloat.

Попередження!

На жаль, у РНР було помічено bug, тому не завжди була коректна робота з негативними числами. Наприклад: якщо виконати -50000 * $ million, результат буде -429496728. Однак, коли обидва операнди - позитивні, проблем не виникає.

Це усунуто в PHP 4.1.0.

У PHP немає операції цілісного поділу. 1/2 дастьfloat0.5.

Конвертація в integer

Для явної конвертації значення використовуйте приведення (int) або (integer). Однак у більшості випадків вам не потрібно використовувати приведення/cast, оскільки значення буде конвертовано автоматично, якщо операція, функція або структура керування вимагаєinteger-аргументу.

З boolean

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

При конвертації float в integer число округляєтьсяу бік нуля.

Якщо float виходить за діапазон integer(зазвичай це +/- 2.15e+9 = 2^31), результат буде невизначеним, оскільки float немає достатньої точності для видачі точного integer-результата. У цьому випадку не буде видано ні попередження, ні навіть будь-якого повідомлення!

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

З інших типів

Попередження!Поведінка при конвертації в integer для інших типів не визначена. В даний час поведінка така ж, якби значення спочатку було конвертовано в boolean. Однакнепокладайтеся на цю поведінку, оскільки вона може бути змінена без попередження.