(PHP 4, PHP 5, PHP 7, PHP 8)
intval — Возвращает целочисленное значение переменной
Функция возвращает целочисленное значение (int) переменной value
,
рассматривая ее как значение в системе счисления с основанием, которое определили в параметре base
.
По умолчанию основание равно 10. Функцию intval()
нельзя вызывать с объектами, попытка сделать это
вызовет ошибку уровня E_WARNING
и вернёт значение 1.
value
Скалярное значение для конвертации в целое.
base
Основание системы счисления для преобразования.
Замечание:
Со значением 0 для параметра
base
основание системы счисления определяется форматом параметраvalue
:
- Для строк, которые включают префикс "0x" или "0X", функция берёт шестнадцатеричное основание — 16;
- иначе функция берёт двоичное основание — 2, если строка начинается с "0b" или "0B";
- иначе функция берёт восьмеричное основание — 8, если строка начинается с "0";
- в остальных случаях основание остаётся десятичным — 10.
Функция возвращает целочисленное значение переменной value
, если выполнилась успешно,
или 0, если возникла ошибка. Для пустых массивов возвращается 0, для непустых возвращается 1.
Максимальное значение зависит от операционной системы. В 32-битных системах
максимальное знаковое целое лежит в диапазоне от -2 147 483 648 до 2 147 483 647. Так, например,
в такой системе, вызов intval('1000000000000')
вернёт
2 147 483 647. Максимальное знаковое целое значение для 64-битных систем — 9 223 372 036 854 775 807.
Для строк функция, вероятно, вернёт 0, хотя это зависит от первого символа в строке; применяются общие правила преобразования в целые.
Версия | Описание |
---|---|
8.0.0 |
Уровень ошибки при преобразовании из объекта изменился
с E_NOTICE на E_WARNING .
|
Пример #1 Примеры приведения значения к целочисленному функцией intval()
Следующие примеры относятся к 64-битной системе.
<?php
echo intval(42), PHP_EOL; // 42
echo intval(4.7), PHP_EOL; // 4
echo intval('42'), PHP_EOL; // 42
echo intval('+42'), PHP_EOL; // 42
echo intval('-42'), PHP_EOL; // -42
echo intval(042), PHP_EOL; // 34
echo intval('042'), PHP_EOL; // 42
echo intval(1e10), PHP_EOL; // 10000000000
echo intval('1e10'), PHP_EOL; // 10000000000
echo intval(0x1A), PHP_EOL; // 26
echo intval('0x1A'), PHP_EOL; // 0
echo intval('0x1A', 0), PHP_EOL; // 26
echo intval(42000000), PHP_EOL; // 42000000
echo intval(420000000000000000000), PHP_EOL; // -4275113695319687168
echo intval('420000000000000000000'), PHP_EOL; // 9223372036854775807
echo intval(42, 8), PHP_EOL; // 42
echo intval('42', 8), PHP_EOL; // 34
echo intval(array()), PHP_EOL; // 0
echo intval(array('foo', 'bar')), PHP_EOL; // 1
echo intval(false), PHP_EOL; // 0
echo intval(true), PHP_EOL; // 1
?>
Замечание:
Параметр
base
учитывается, только если в параметрvalue
передаётся строка.