Tipos de Datos Primitivos
PHP es un lenguaje de tipado dinámico, pero eso no significa que no tenga tipos. Conocer los tipos de datos te ayudará a escribir código más robusto y evitar errores.
Los 8 tipos de datos en PHP
PHP tiene 8 tipos de datos primitivos, divididos en tres categorías:
| Categoría | Tipos | Descripción |
|---|---|---|
| Escalares | string |
Cadenas de texto |
int |
Números enteros | |
float |
Números decimales | |
bool |
Verdadero o falso | |
| Compuestos | array |
Colección de valores |
object |
Instancia de clase | |
| Especiales | null |
Ausencia de valor |
resource |
Recurso externo |
String (cadenas de texto)
Un string es una secuencia de caracteres. Se pueden definir con comillas simples o dobles.
<?php
// Comillas simples: texto literal
$nombre = 'Carlos';
// Comillas dobles: interpreta variables
$saludo = "Hola, $nombre";
echo $saludo; // Hola, Carlos
// Verificar tipo
echo gettype($nombre); // string
var_dump($nombre); // string(6) "Carlos"
Integer (números enteros)
Números sin decimales. Pueden ser positivos, negativos o cero.
<?php
$edad = 28;
$temperatura = -5;
$cero = 0;
// Notaciones alternativas
$hexadecimal = 0xFF; // 255 en decimal
$octal = 0755; // 493 en decimal
$binario = 0b11111111; // 255 en decimal
// Separadores para legibilidad (PHP 7.4+)
$millon = 1_000_000;
echo $millon; // 1000000
var_dump($edad); // int(28)
Float (números decimales)
Números con punto decimal. También llamados
double.
<?php
$precio = 19.99;
$pi = 3.14159;
$negativo = -273.15;
// Notación científica
$avogadro = 6.022e23;
$pequeño = 1.5e-10;
var_dump($precio); // float(19.99)
Los floats tienen precisión limitada.
0.1 + 0.2 no es exactamente
0.3. Para dinero, usa
enteros (céntimos) o la extensión
BCMath.
Boolean (verdadero/falso)
Representa un valor de verdad. Solo puede ser
true o false.
<?php
$activo = true;
$eliminado = false;
// Resultado de comparaciones
$esMayor = 10 > 5; // true
$esIgual = 5 == "5"; // true (comparación débil)
$esIdentico = 5 === "5"; // false (comparación estricta)
var_dump($activo); // bool(true)
var_dump($esIdentico); // bool(false)
Valores que se evalúan como false
Estos valores se consideran
false en contextos booleanos:
<?php
// Todos estos son "falsy"
$valores = [
false, // boolean false
0, // entero cero
0.0, // float cero
"", // string vacío
"0", // string "0"
[], // array vacío
null, // null
];
foreach ($valores as $valor) {
if (!$valor) {
echo "Falsy\n";
}
}
Array
Colección ordenada de valores. Los veremos en detalle en una sección posterior.
<?php
// Array indexado
$frutas = ["manzana", "pera", "naranja"];
// Array asociativo
$persona = [
"nombre" => "Carlos",
"edad" => 28,
"ciudad" => "Madrid"
];
echo $frutas[0]; // manzana
echo $persona["nombre"]; // Carlos
Null
Representa la ausencia de valor. Una variable es
null si no se le ha asignado valor
o se le asignó explícitamente null.
<?php
$sinValor = null;
// Verificar si es null
if (is_null($sinValor)) {
echo "Es null\n";
}
// También puedes usar ===
if ($sinValor === null) {
echo "Es null\n";
}
var_dump($sinValor); // NULL
Verificar tipos de datos
PHP proporciona varias funciones para verificar tipos:
<?php
$valor = 'Hola';
// gettype() - Obtener el tipo como string
echo gettype($valor); // string
// var_dump() - Información detallada (para debug)
var_dump($valor); // string(4) "Hola"
// Funciones is_*
is_string($valor); // true
is_int($valor); // false
is_float($valor); // false
is_bool($valor); // false
is_array($valor); // false
is_null($valor); // false
is_numeric($valor); // false (sería true para "123")
is_object($valor); // false
Type declarations (PHP 7+)
Aunque PHP es de tipado dinámico, puedes declarar tipos en funciones para mayor seguridad:
<?php
declare(strict_types=1); // Modo estricto
function sumar(int $a, int $b): int
{
return $a + $b;
}
echo sumar(5, 3); // 8
// echo sumar("5", 3); // Error en modo estricto
function saludar(string $nombre): string
{
return "Hola, $nombre";
}
echo saludar("Carlos"); // Hola, Carlos
Usa
declare(strict_types=1) en
tus archivos PHP. Te obligará a ser
explícito con los tipos y evitarás
errores sutiles.
Ejercicios
Ejercicio 1: Identificar tipos de datos
Crea variables con los siguientes valores:
"Hola", 42, 3.14, true y null. Usa
gettype() para imprimir el tipo de
cada una.
Ver solucion
<?php
declare(strict_types=1);
$texto = 'Hola';
$entero = 42;
$decimal = 3.14;
$booleano = true;
$nulo = null;
echo "texto: " . gettype($texto) . "\n";
echo "entero: " . gettype($entero) . "\n";
echo "decimal: " . gettype($decimal) . "\n";
echo "booleano: " . gettype($booleano) . "\n";
echo "nulo: " . gettype($nulo) . "\n";
Ejercicio 2: Verificar tipos con is_*
Dado el valor $valor = "123",
verifica si es un string, si es un entero y si
es numerico. Imprime el resultado de cada
verificacion.
Ver solucion
<?php
declare(strict_types=1);
$valor = '123';
echo "Es string: ";
var_dump(is_string($valor));
echo "Es entero: ";
var_dump(is_int($valor));
echo "Es numerico: ";
var_dump(is_numeric($valor));
Ejercicio 3: Valores falsy
Crea un array con los valores: 0, "", "0", [], null y false. Recorre el array e imprime cuales se evaluan como false en un contexto booleano.
Ver solucion
<?php
declare(strict_types=1);
$valores = [0, '', '0', [], null, false];
$nombres = ['0', '""', '"0"', '[]', 'null', 'false'];
for ($i = 0; $i < count($valores); $i++) {
if (!$valores[$i]) {
echo $nombres[$i] . " se evalua como false\n";
}
}
¿Has encontrado un error o tienes una sugerencia para mejorar esta lección?
Escríbenos¿Te está gustando el curso?
Tenemos cursos premium con proyectos reales y soporte personalizado.
Descubrir cursos premium