W3docs

gettype()

A função gettype() do PHP retorna o tipo de dado de uma variável como string, útil para depuração e tratamento de entradas mistas.

Introdução

PHP é uma linguagem de tipagem dinâmica: o tipo de uma variável é decidido em tempo de execução, não declarado previamente. A função nativa gettype() permite inspecionar esse tipo em tempo de execução, retornando uma string legível por humanos como "integer" ou "string". É útil ao depurar valores inesperados, ramificar com base no tipo de uma entrada mista ou escrever mensagens de log que descrevam o que foi recebido.

Esta página cobre a sintaxe da função, as strings exatas que ela pode retornar, as peculiaridades dos nomes de tipo legados que confundem as pessoas, e quando usar gettype() versus as funções dedicadas is_*.

Sintaxe

gettype(mixed $value): string

gettype() recebe um único argumento, $value — a variável cujo tipo você quer conhecer — e retorna uma string com o nome desse tipo. Nunca lança exceções e nunca modifica seu argumento.

Valores retornados

gettype() retorna uma das seguintes strings fixas:

String retornadaTipo PHP
"boolean"bool (true / false)
"integer"int
"double"float (sim, double, não "float" — veja o aviso abaixo)
"string"string
"array"array
"object"qualquer instância de objeto
"resource"um recurso aberto (ex.: um identificador de arquivo)
"resource (closed)"um recurso fechado (PHP 7.2+)
"NULL"o valor null
"unknown type"um tipo que o PHP não consegue nomear de outra forma

Exemplo básico

Exemplo de gettype() em PHP

php— editable, runs on the server

Aqui definimos quatro variáveis de tipos diferentes e pedimos ao gettype() para nomear cada uma. A saída é string, integer, boolean e array — um nome de tipo por linha.

A armadilha do "double" e "integer"

As strings que gettype() retorna não correspondem às palavras-chave usadas nas declarações de tipo. Um float é reportado como "double", e um int é reportado como "integer":

<?php
echo gettype(3.14), "\n"; // double  (NOT "float")
echo gettype(7),    "\n"; // integer (NOT "int")
echo gettype(null), "\n"; // NULL    (uppercase)
?>

Por causa disso, comparar a saída de gettype() com "float" ou "int" falha silenciosamente. Se você precisar apenas de uma resposta sim/não sobre um único tipo, prefira as funções dedicadas — is_int(), is_float(), is_string(), is_array() e similares — que são mais rápidas e livres da surpresa de nomenclatura:

<?php
$value = 7;

// Brittle: depends on the legacy name
if (gettype($value) === "integer") { /* ... */ }

// Clearer and faster:
if (is_int($value)) { /* ... */ }
?>

No PHP 8.0 e versões posteriores, get_debug_type() é a alternativa moderna: retorna os nomes canônicos (int, float, bool) e, para objetos, o nome real da classe em vez de apenas "object".

Quando usar gettype()

  • Depuração e registro — imprimir o tipo de um valor junto ao seu conteúdo enquanto se rastreia um bug.
  • Tratamento genérico de entrada mista — ramificar em um switch quando uma função aceita legitimamente vários tipos.
  • Inspeção rápida — uma verificação pontual no console sem se preocupar com a nomenclatura moderna.

Para exibições estruturadas completas de um valor (seu tipo e seu conteúdo, de forma recursiva), use var_dump() ou print_r(). Para alterar o tipo de uma variável em vez de lê-lo, veja settype(). Para uma visão geral do sistema de tipos do PHP, leia Tipos de Dados PHP.

Conclusão

gettype() fornece uma resposta rápida em string para "qual é o tipo deste valor?" — útil para depuração, registro e tratamento de entradas mistas. Lembre-se apenas dos nomes legados ("double" para floats, "integer" para ints) e prefira as funções is_* ou get_debug_type() quando precisar de uma verificação precisa e à prova de futuro.

Prática

Prática
Qual é o propósito da função 'gettype()' no PHP?
Qual é o propósito da função 'gettype()' no PHP?
Was this page helpful?