Variables y tipos de datos
Los tipos de datos principales de PHP y cómo se comporta realmente su tipado dinámico y flexible.
2 min de lectura
PHP tiene tipado dinámico — el tipo de una variable se determina según el valor que contenga en ese momento, y puede cambiar si la reasignas.
Los tipos escalares principales
<?php
$name = "Amara"; // string
$age = 28; // int
$price = 19.99; // float
$isActive = true; // boolEstos cuatro — string, int, float, bool — cubren la mayoría de los valores cotidianos. Usa var_dump() durante el desarrollo para ver el tipo y el valor exactos de una variable:
<?php
var_dump($age);
// int(28)Arrays: el tipo de colección "todo en uno" de PHP
<?php
$fruits = ["apple", "banana", "cherry"];
$user = ["name" => "Amara", "role" => "admin"];PHP tiene un único tipo de array que cumple la función tanto de una lista como de un diccionario: un array indexado ($fruits, con claves 0, 1, 2... automáticas) y un array asociativo ($user, con las claves que tú elijas). Ambos son exactamente el mismo tipo subyacente — ["name" => "Amara"] es simplemente un array con claves de tipo string en lugar de las numéricas por defecto.
null: la ausencia de un valor
<?php
$middleName = null;
if ($middleName === null) {
echo "No middle name provided.";
}null representa "ningún valor". Una variable también puede simplemente no existir todavía — acceder a una variable no definida emite un aviso y se evalúa como null, razón por la cual inicializar explícitamente las variables (aunque sea a null) es una buena práctica en lugar de confiar en ese comportamiento por defecto.
Comprobar el tipo de una variable
<?php
$value = "42";
echo gettype($value); // "string"
var_dump(is_string($value)); // bool(true)
var_dump(is_numeric($value)); // bool(true) — parece numérico, aunque es un stringgettype() devuelve el tipo como un string; la familia is_* (is_string, is_int, is_array, is_numeric, y más) devuelve un booleano, que normalmente es más útil en una condición if que comparar un string.
Constantes: valores que nunca cambian
<?php
define("MAX_LOGIN_ATTEMPTS", 5);
const APP_NAME = "DevLearnHub";
echo MAX_LOGIN_ATTEMPTS;define() y const crean ambos una constante — un valor que no se puede reasignar una vez establecido. const se evalúa cuando se compila el archivo (por lo que solo puede contener un literal fijo y normalmente se usa a nivel superior o dentro de una clase), mientras que define() puede llamarse condicionalmente en tiempo de ejecución. Las constantes no usan el prefijo $, y la convención es nombrarlas en SCREAMING_SNAKE_CASE.
Por qué el "tipado flexible" sorprende a la gente
PHP usará con gusto un valor como si fuera de un tipo distinto cuando el contexto lo requiere — un string como "5" se comporta como el número 5 en una operación aritmética. La próxima lección, sobre conversión de tipos, cubre exactamente cuándo eso resulta conveniente y cuándo provoca errores silenciosamente.
Pon a prueba lo que acabas de aprender
4 preguntas rápidas. Respóndelas todas correctamente para desbloquear la siguiente lección.
Puedes hacer el cuestionario sin una cuenta — iniciar sesión solo hace que tu resultado cuente para tu progreso.