Lección 6 de 75 15 min de lectura

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
<?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
<?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
<?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)
Cuidado con la precisión

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
<?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
<?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
<?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
<?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
<?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
<?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
Buena práctica

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";
    }
}

¿Te está gustando el curso?

Tenemos cursos premium con proyectos reales y soporte personalizado.

Descubrir cursos premium