W3docs

gettype()

La función gettype() en PHP devuelve el tipo de dato de una variable dada. Aprende su sintaxis, valores de retorno y cuándo usarla.

Introducción

PHP es un lenguaje de tipado dinámico: el tipo de una variable se decide en tiempo de ejecución, no se declara de antemano. La función integrada gettype() te permite inspeccionar ese tipo en tiempo de ejecución, devolviendo una cadena legible por humanos como "integer" o "string". Es útil cuando estás depurando valores inesperados, ramificando según el tipo de una entrada mixta, o escribiendo mensajes de registro que describen lo que realmente recibiste.

Esta página cubre la sintaxis de la función, las cadenas exactas que puede devolver, las peculiaridades de los nombres de tipo heredados que confunden a la gente, y cuándo usar gettype() en lugar de las funciones dedicadas is_*.

Sintaxis

gettype(mixed $value): string

gettype() toma un único argumento, $value — la variable cuyo tipo quieres conocer — y devuelve una cadena con el nombre de ese tipo. Nunca lanza excepciones y nunca modifica su argumento.

Valores de retorno

gettype() devuelve una de las siguientes cadenas fijas:

Cadena devueltaTipo PHP
"boolean"bool (true / false)
"integer"int
"double"float (sí, double, no "float" — ver la advertencia más abajo)
"string"string
"array"array
"object"cualquier instancia de objeto
"resource"un recurso abierto (p.ej. un descriptor de archivo)
"resource (closed)"un recurso cerrado (PHP 7.2+)
"NULL"el valor null
"unknown type"un tipo que PHP no puede nombrar de otra manera

Ejemplo básico

Ejemplo de PHP gettype()

php— editable, runs on the server

Aquí definimos cuatro variables de diferentes tipos y le pedimos a gettype() que nombre cada una. La salida es string, integer, boolean y array — un nombre de tipo por línea.

La trampa de "double" e "integer"

Las cadenas que devuelve gettype() no coinciden con las palabras clave que se usan en las declaraciones de tipo. Un float se reporta como "double", y un int se reporta 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 esta razón, comparar la salida de gettype() con "float" o "int" falla silenciosamente. Si solo necesitas una respuesta de sí/no sobre un tipo concreto, prefiere las funciones dedicadas — is_int(), is_float(), is_string(), is_array(), y similares — que son más rápidas y están libres de la sorpresa de nomenclatura:

<?php
$value = 7;

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

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

En PHP 8.0 y versiones posteriores, get_debug_type() es la alternativa moderna: devuelve los nombres canónicos (int, float, bool) y, para objetos, el nombre real de la clase en lugar de simplemente "object".

Cuándo usar gettype()

  • Depuración y registro — imprimir el tipo de un valor junto con su contenido mientras se rastrea un error.
  • Manejo genérico de entrada mixta — ramificar en un switch cuando una función acepta legítimamente varios tipos.
  • Inspección rápida — una verificación puntual en la consola sin preocuparse por la nomenclatura moderna.

Para volcados estructurados completos de un valor (su tipo y su contenido, de forma recursiva), usa var_dump() o print_r(). Para cambiar el tipo de una variable en lugar de leerlo, consulta settype(). Para un recorrido más amplio del sistema de tipos de PHP, lee PHP Data Types.

Conclusión

gettype() te da una respuesta rápida basada en cadenas a la pregunta "¿qué tipo es este valor?" — útil para depuración, registro y manejo de entrada mixta. Solo recuerda los nombres heredados ("double" para los flotantes, "integer" para los enteros) y recurre a las funciones is_* o a get_debug_type() cuando necesites una verificación precisa y preparada para el futuro.

Práctica

Práctica
¿Cuál es el propósito de la función 'gettype()' en PHP?
¿Cuál es el propósito de la función 'gettype()' en PHP?
Was this page helpful?