W3docs

is_integer()

La función is_integer() es un alias de is_int() en PHP. Verifica si una variable es de tipo entero y devuelve un boolean.

Introducción

is_integer() es un alias de is_int() en PHP. Comprueba si el tipo de una variable es entero y devuelve un boolean. Un entero en PHP es un número entero sin parte fraccionaria, como -5, 0 o 42.

Esta página explica qué verifica is_integer() (y qué no verifica intencionalmente), los problemas con las cadenas numéricas y qué nombre deberías usar en código nuevo.

Usa is_int() en su lugar. is_integer() e is_int() son la misma función, por lo que ninguna está eliminada ni deprecada. Sin embargo, is_int() es el nombre canónico utilizado en todo el manual de PHP y en los proyectos modernos. Prefiere usarlo por consistencia.

Sintaxis

is_integer(mixed $value): bool

Recibe un argumento, $value, la variable a inspeccionar, y devuelve true solo cuando $value es de tipo int, y false para cualquier otro tipo.

Ejemplo de uso

php— editable, runs on the server

$var1 contiene el entero 42, por lo que la llamada devuelve true, que echo imprime como 1. $var2 es una cadena, por lo que la llamada devuelve false, que echo imprime como nada (una cadena vacía). Para ver los valores booleanos con claridad, usa var_dump() en lugar de echo.

Comprueba el tipo, no el valor

Esta es la fuente de confusión más común: is_integer() examina el tipo de la variable, por lo que una cadena como "42" o un float como 42.0 no es un entero, aunque "parezca" uno.

<?php
var_dump(is_integer(42));        // bool(true)
var_dump(is_integer("42"));      // bool(false) — numeric string, not int
var_dump(is_integer(42.0));      // bool(false) — float, not int
var_dump(is_integer(true));      // bool(false) — bool, not int
var_dump(is_integer(null));      // bool(false)
var_dump(is_integer(PHP_INT_MAX)); // bool(true)
?>

Si necesitas aceptar cadenas numéricas (por ejemplo, valores provenientes de $_GET, $_POST o un archivo CSV), usa is_numeric() o convierte/valida con intval() en su lugar.

¿Cuándo usaría esto?

  • Validar el argumento de una función antes de realizar operaciones matemáticas exclusivas de enteros, por ejemplo, usar un valor como índice de array o límite de un bucle.
  • Diferenciar tipos tras una función que puede devolver tipos mixtos (un patrón común con strpos(), que devuelve un desplazamiento int o false):
<?php
$pos = strpos("hello world", "world");
if (is_integer($pos)) {
    echo "Found at index $pos\n"; // Found at index 6
} else {
    echo "Not found\n";
}
?>

Funciones relacionadas de comprobación de tipos

FunciónDevuelve true para
is_int()Un int (nombre canónico; idéntico a is_integer())
is_float()Un float (p. ej. 3.14, 42.0)
is_string()Un string, incluido "42"
is_numeric()Un int, float, o cadena numérica
gettype()(devuelve el nombre del tipo, no un bool)

Consulta el capítulo sobre tipos de datos de PHP para obtener una visión completa de cómo PHP categoriza los valores.

Conclusión

is_integer() es un alias de is_int() que devuelve true solo cuando una variable es de tipo int. Recuerda que comprueba el tipo, no el valor, por lo que las cadenas numéricas y los floats devuelven false. En código nuevo, prefiere el canónico is_int(); recurre a is_numeric() cuando las cadenas numéricas también deban contar.

Práctica

Práctica
¿Cómo puedes comprobar si una variable contiene un valor entero en PHP?
¿Cómo puedes comprobar si una variable contiene un valor entero en PHP?
Was this page helpful?