W3docs

is_integer()

A função is_integer() é um alias de is_int() em PHP. Verifica se uma variável é um inteiro e retorna um booleano.

Introdução

is_integer() é um alias de is_int() em PHP. Testa se o tipo de uma variável é inteiro e retorna um boolean. Um inteiro em PHP é um número inteiro sem parte fracionária, como -5, 0 ou 42.

Esta página aborda o que is_integer() verifica (e o que deliberadamente não verifica), as armadilhas com strings numéricas e qual nome você deve usar em código novo.

Use is_int() em vez disso. is_integer() e is_int() são a mesma função, portanto nenhuma delas foi removida ou descontinuada. No entanto, is_int() é o nome canônico usado em todo o manual PHP e nas bases de código modernas. Prefira-o para manter a consistência.

Sintaxe

is_integer(mixed $value): bool

Aceita um argumento, $value, a variável a ser inspecionada, e retorna true somente quando $value é do tipo int, e false para qualquer outro tipo.

Exemplo de uso

php— editable, runs on the server

$var1 armazena o inteiro 42, então a chamada retorna true, que o echo imprime como 1. $var2 é uma string, então a chamada retorna false, que o echo não imprime (string vazia). Para ver os valores booleanos com clareza, use var_dump() em vez de echo.

Verifica o tipo, não o valor

Esta é a fonte de confusão mais comum: is_integer() analisa o tipo da variável, portanto uma string como "42" ou um float como 42.0 não é um inteiro, mesmo que "pareça" um.

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

Se você precisar aceitar strings numéricas (por exemplo, valores vindos de $_GET, $_POST ou de um arquivo CSV), use is_numeric() ou converta/valide com intval().

Quando usar?

  • Proteger o argumento de uma função antes de realizar operações matemáticas exclusivas de inteiros, como usar um valor como índice de array ou limite de loop.
  • Diferenciar tipos após uma função que pode retornar tipos mistos (padrão comum com strpos(), que retorna um deslocamento int ou 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";
}
?>

Funções relacionadas de verificação de tipo

FunçãoRetorna true para
is_int()Um int (nome canônico; idêntico a is_integer())
is_float()Um float (ex.: 3.14, 42.0)
is_string()Uma string, incluindo "42"
is_numeric()Um int, float ou string numérica
gettype()(retorna o nome do tipo, não um bool)

Consulte o capítulo tipos de dados PHP para ter uma visão completa de como o PHP categoriza os valores.

Conclusão

is_integer() é um alias de is_int() que retorna true somente quando uma variável é do tipo int. Lembre-se de que verifica o tipo, não o valor, portanto strings numéricas e floats retornam false. Para código novo, prefira o canônico is_int(); recorra a is_numeric() quando strings numéricas também devem ser consideradas.

Prática

Prática
Como você pode verificar se uma variável contém um valor inteiro em PHP?
Como você pode verificar se uma variável contém um valor inteiro em PHP?
Was this page helpful?