intval

(PHP 4, PHP 5, PHP 7, PHP 8)

intvalВозвращает целочисленное значение переменной

Описание

intval(mixed $value, int $base = 10): int

Функция возвращает целочисленное значение (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 передаётся строка.

Смотрите также