intval

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

intvalОтримує цілочисельне значення змінної

Опис

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

Повертає цілочисельне (integer) значення var, використовуючи основу, вказану через параметр base, для перетворень (початково база 10). Функція intval() не повинна приймати в якості параметрів об'єкти, оскільки це спричинятиме виведення помилки рівня E_NOTICE та повертатиметься 1.

Параметри

var

Скалярне значення для конвертації до цілочисельного (integer)

base

Основа для перетворень

Зауваження:

Якщо base рівне 0, використовуватиметься база визначена через формат запису var:

  • якщо рядок включає префікс "0x" (чи "0X"), основою вважатиметься 16 (шістнадцядкова система числення);
  • якщо рядок починається з "0", основою вважатиметься 8 (вісімкова система числення);
  • в іншому разі основою вважатиметься 10 (десяткова система числення).

Значення, що повертаються

Цілочисельне значення від var при успіху, або ж 0 при невдачі. Передаючи через параметр пустий масив, функція повертатиме 0, передаючи непустий масив - повертатиме 1.

Максимальне значення залежить від системи. 32-бітні системи мають максимальне ціле знакове число в діапазоні від -2147483648 до 2147483647. Тобто, наприклад, на таких сестемах, intval('1000000000000') буде повертати 2147483647. На 64-бітних системах максимальне знакове ціле число рівне 9223372036854775807.

Для рядкових значень функція, швидше за все, буде повертати 0, хоча це залежить від початкових символів рядка. В цьому разі будуть застосовуватись загальні правила конвертування до цілочисельного.

Приклади

Приклад #1 Використання intval()

Наступні приклади показані для 32-бітних систем.

<?php
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34
echo intval('042'); // 42
echo intval(1e10); // 1410065408
echo intval('1e10'); // 1
echo intval(0x1A); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
?>

Примітки

Зауваження:

Параметр base не застосовуватиметься, якщо параметр var буде рядком.

Журнал змін

Версія Опис
5.1.0 Кидає E_NOTICE та повертає 1, при передачі об'єкта через var.

Прогляньте також