intval

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

intval Devuelve el valor entero equivalente de una variable

Descripción

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

Devuelve el valor entier de value utilizando la base proporcionada para la conversión (por omisión en base 10). intval() no debería ser utilizada con objetos; en estos casos, se emitirá un error de nivel E_WARNING y la función devolverá 1.

Parámetros

value

El valor escalar a ser convertido en entero

base

La base para la conversión

Nota:

Si base es 0, la base utilizada se determina por el formato del parámetro value:

  • si la cadena incluye un prefijo "0x" (o "0X"), la base tomada será 16 (hex); de lo contrario,
  • si la cadena comienza por "0b" (o "0B"), la base tomada será 2 (binario); de lo contrario,
  • si la cadena comienza por "0", la base tomada será 8 (octal); de lo contrario,
  • la base tomada será 10 (decimal).

Valores devueltos

Un valor de tipo entier de value en caso de éxito o 0 en caso de fallo. Los arrays vacíos devuelven 0, los arrays no vacíos devuelven 1.

El valor máximo depende del sistema. Los sistemas de 32 bits tienen un valor entero signado máximo de -2147483648 a 2147483647. Por lo tanto, por ejemplo, en un sistema similar, intval('1000000000000') devolverá 2147483647. El valor entero signado máximo para un sistema de 64 bits es 9223372036854775807.

Las cadenas de caracteres devuelven la mayoría de las veces 0, esto depende de los caracteres en el extremo izquierdo de la cadena. La regla común del moldeado de enteros se aplica.

Historial de cambios

Versión Descripción
8.0.0 El nivel de error al convertir desde un objeto ha sido modificado de E_NOTICE a E_WARNING.

Ejemplos

Ejemplo #1 Ejemplos con intval()

Los ejemplos siguientes están basados en un sistema de 64 bits.

<?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
?>

Notas

Nota:

El parámetro base no tiene ningún efecto a menos que el parámetro value sea una chaîne de caractères.

Ver también