(PHP 4, PHP 5, PHP 7, PHP 8)
intval — Devuelve el valor entero equivalente de una variable
Devuelve el valor entero 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.
valueEl valor escalar a ser convertido en entero
baseLa base para la conversión
Nota:
Si
basees 0, la base utilizada se determina por el formato del parámetrovalue:
- 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).
Un valor de tipo entero 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.
| 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.
|
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
?>Nota:
El parámetro
baseno tiene ningún efecto a menos que el parámetrovaluesea una string.