Tipos de Datos en PHP: Integer, Float, String y Booleanos

Clase 12 de 23Curso Básico de PHP: Instalación, Fundamentos y Operadores

Contenido del curso

Resumen

Comprender los tipos de datos es fundamental para escribir código sólido en cualquier lenguaje, y PHP tiene particularidades que lo hacen único: su capacidad de inferir y convertir tipos automáticamente. Conocer cómo funciona esta mecánica te evitará errores silenciosos y te ayudará a adoptar buenas prácticas desde el inicio.

¿Qué es un tipo de dato y por qué importa en PHP?

Un tipo de dato es una taxonomía que clasifica el valor almacenado en una variable [0:24]. Si tienes un número, su tipo es numérico; si tienes una palabra como "Mister Michi", estás ante una cadena de caracteres. Identificar correctamente el tipo permite que el lenguaje y tú como programador sepan qué operaciones son válidas sobre ese valor.

Los tipos de datos se agrupan en varias familias:

¿Cuáles son los tipos numéricos disponibles?

  • Integer: números enteros sin decimales, como 22, 50 o 48600 [1:08].
  • Float: números con punto decimal, por ejemplo 3.1416 [1:34].
  • Double: similar a float, pero con mayor precisión en los decimales, útil para valores como el número pi [1:48].

La regla es sencilla: si no tiene decimal es integer; si lo tiene, será float o double dependiendo de cuánta precisión necesites.

¿Qué diferencia hay entre char y string?

Dentro de las cadenas de caracteres encontramos dos variantes [2:12]:

  • Char: representa un solo carácter, ya sea una letra, un símbolo como el hashtag o incluso un dígito.
  • String: es una cadena de varios caracteres unidos. La palabra string proviene de "cadena". Por ejemplo, las letras A-N-G-E-L juntas forman el string "Ángel".

También existen los booleanos, un concepto que proviene del álgebra de Boole [3:00]. Un booleano solo puede ser verdadero o falso, sin punto intermedio. "El cielo es azul" es verdadero; "el logo de Platzi es naranja" es falso.

Finalmente están los tipos sin valor: null indica que no hay valor almacenado, mientras que undefined señala que la variable existe pero nunca recibió un valor [3:36]. Este último se ve más en JavaScript, pero el concepto aplica en varios lenguajes.

¿Cómo funciona el tipado débil en PHP?

PHP posee un tipado débil, lo que significa que el lenguaje es capaz de deducir automáticamente el tipo de dato de una variable sin que tú lo declares explícitamente [4:04]. Si escribes $numerito = 5;, PHP reconoce que es un integer por sí solo.

En la práctica esto se demuestra con var_dump(), la función que muestra el tipo y el valor de una variable [5:08]. Al ejecutar var_dump($numerito) con el valor 23, PHP confirma que es int. Pero si ese mismo 23 se coloca entre comillas ("23"), PHP lo trata como string [5:52].

¿Qué pasa al operar un string con un integer?

Aquí viene lo curioso. Si tienes $numerito = "23" y luego haces $numerito = $numerito + 2, PHP convierte el string a integer en tiempo de ejecución y devuelve 25 como resultado de tipo int [6:24]. Sin embargo, la variable original no se modifica permanentemente: sigue siendo un string con valor "23" [7:04]. PHP realiza la conversión solo cuando la necesita.

Otro caso interesante: si partes de un integer 10 y le sumas 0.5, el resultado cambia a tipo float [7:42]. PHP detecta que el resultado tiene decimales y ajusta el tipo automáticamente.

¿Qué ocurre al sumar texto con números en PHP?

Un ejemplo revelador es crear una variable como $papas = "10 papas en el costal" y sumarle 5 [8:24]. PHP extrae el número que encuentra al inicio del string, realiza la operación y devuelve 15. Funciona, pero genera un mensaje de advertencia indicando que el valor no es estrictamente numérico [9:04].

Este comportamiento ilustra por qué PHP es considerado un lenguaje muy permisivo: te echa la mano, pero te advierte que no deberías hacerlo. De ahí pueden derivar malas prácticas si no se monitorean los tipos de datos constantemente.

La recomendación es clara: siempre verifica el tipo de tus variables con funciones como var_dump() y evita depender de la conversión automática cuando puedas ser explícito. ¿Has tenido algún error inesperado por el tipado débil de PHP? Comparte tu experiencia.