(PHP 4, PHP 5, PHP 7, PHP 8)
intval — Devuelve el valor entero equivalente de una variable
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.
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á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 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.
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
base
no tiene ningún efecto a menos que el parámetrovalue
sea una chaîne de caractères.