W3docs

is_long()

A função is_long() no PHP verifica se uma variável é do tipo inteiro. Retorna true se for inteiro e false caso contrário.

Introdução

is_long() é uma função PHP integrada que verifica se uma variável contém um valor do tipo inteiro. Ela retorna true se a variável for um inteiro e false caso contrário.

O ponto principal a entender é que is_long() é um alias exato de is_int(): ambos os nomes chamam a mesma função subjacente e se comportam de forma idêntica. Esta página explica de onde vem o nome is_long(), como ele se comporta e por que você geralmente deve preferir is_int() em novos códigos.

Por que o nome "is_long"?

No código-fonte C do PHP, o tipo inteiro é representado internamente por um long do C. Por causa dessa história, o PHP expõe três nomes intercambiáveis para a mesma verificação de inteiro:

  • is_int() — o nome canônico e recomendado.
  • is_integer() — um alias mantido por legibilidade.
  • is_long() — um alias que espelha o nome do tipo C interno.

Todos os três ainda estão disponíveis no PHP atual (incluindo PHP 8.x), e todos os três retornam o mesmo resultado para a mesma entrada. O manual do PHP lista is_long() e is_integer() como aliases de is_int() e recomenda is_int() por clareza.

Sintaxe Básica

is_long($variable); // identical to is_int($variable)

O parâmetro $variable é o valor a ser testado. A função retorna true apenas para um valor inteiro real, sem coerção de tipo — strings numéricas e floats retornam false.

Exemplo de Uso

Aqui is_long() é usada para testar três variáveis diferentes:

php— editable, runs on the server
bool(true)
bool(false)
bool(false)

Apenas $var1 é um inteiro verdadeiro. A string numérica "10" e o float 3.14 retornam false, porque is_long() verifica o tipo real e nunca converte o valor antes. Trocar is_long() por is_int() aqui produziria exatamente a mesma saída — é isso que "alias" significa.

Filtrando valores por tipo

Por retornar um boolean, is_long() funciona diretamente como callback para funções como array_filter(). Isso é útil para manter apenas os inteiros genuínos de um array misto:

php— editable, runs on the server
Array
(
    [0] => 10
    [3] => 40
)

array_filter() mantém apenas os inteiros reais, descartando a string numérica "20" e o float 30.5. Note que as chaves originais do array (0 e 3) são preservadas, sem renumeração.

Notas Importantes

  • Alias de is_int(): is_long() não tem comportamento próprio. Não existe um tipo "long" separado no PHP distinto de int; o nome simplesmente reflete a representação interna em C.
  • Ainda disponível, mas não preferido: is_long() funciona no PHP atual, mas o manual recomenda is_int() por legibilidade. Muitos guias de estilo e ferramentas de análise estática sinalizam o alias.
  • Sem coerção de tipo: assim como is_int(), retorna false para strings numéricas ("123") e floats com valores inteiros (5.0). Para aceitar esses casos, use is_numeric() ou filter_var($var, FILTER_VALIDATE_INT).

Boas Práticas

Prefira is_int() em novos códigos

is_int(), is_integer() e is_long() são intercambiáveis, então escolha um e seja consistente. A convenção da comunidade é is_int() — é o mais curto, o mais claro e o nome que a documentação utiliza.

Evite comparações redundantes

Como a função já retorna um boolean, envolver seu resultado em uma comparação estrita (=== true) é desnecessário. Escreva simplesmente if (is_int($var)).

Funções Relacionadas de Verificação de Tipo

  • is_int() — a verificação de inteiro canônica e recomendada.
  • is_integer() — outro alias legível de is_int().
  • is_numeric()true para inteiros, floats e strings numéricas.
  • is_float() — verifica valores de ponto flutuante.
  • is_string() — verifica valores do tipo string.

Conclusão

is_long() é simplesmente um nome alternativo para is_int(). Ela realiza uma verificação de inteiro estrita e sem coerção e se comporta de forma idêntica ao seu equivalente mais conhecido. Como o alias não adiciona funcionalidade e pode confundir leitores, use is_int() em novos códigos e reserve is_long() para entender bases de código mais antigas que ainda dependem desse nome.

Prática

Prática
Qual das seguintes afirmações sobre a função 'is_long' do PHP é verdadeira?
Qual das seguintes afirmações sobre a função 'is_long' do PHP é verdadeira?
Was this page helpful?