Clases y Objetos en PHP: Guía completa de POO con ejemplos

Clases y Objetos en PHP 🧩

Objetivo: Esta guía está pensada para alguien con conocimientos básicos de programación en PHP (variables, funciones y estructuras de control). Aquí aprenderás desde los conceptos más importantes de la Programación Orientada a Objetos (POO) hasta ejemplos prácticos explicados paso a paso.


🔎 ¿Qué es la POO? (explicación clara)

La Programación Orientada a Objetos (POO) es una forma de organizar el código usando clases y objetos:

  • Clase: es una plantilla (como el plano de una casa). Define propiedades (datos) y métodos (comportamientos).
  • Objeto: es una instancia de la clase, como una casa construida a partir del plano.

¿Por qué usarla? Porque ayuda a:

  • Organizar el código.
  • Reusar código (no repetir).
  • Modelar entidades del mundo real (usuario, producto, carrito).
  • Facilitar mantenimiento y pruebas.

🏗️ Sintaxis básica: definir una clase paso a paso

Ejemplo básico (desglosado)

<?php
class Persona {
    public string $nombre;   // propiedad pública
    private int $edad;       // propiedad privada

    // Constructor: se ejecuta al crear la instancia
    public function __construct(string $nombre, int $edad) {
        $this->nombre = $nombre; // asigna la propiedad 'nombre'
        $this->edad = $edad;     // asigna la propiedad 'edad'
    }

    // Método: comportamiento de la clase
    public function saludar(): string {
        return "Hola, soy {$this->nombre} y tengo {$this->edad} años.";
    }
}

// Crear (instanciar) un objeto
$p = new Persona("Andrés", 30);
echo $p->saludar(); // Muestra: Hola, soy Andrés y tengo 30 años.

Explicación línea por línea

  • class Persona { ... } define la plantilla.
  • public string $nombre; es una propiedad accesible desde fuera.
  • private int $edad; es una propiedad que sólo la clase puede usar directamente.
  • __construct(...) es el constructor: recibe parámetros y prepara el objeto.
  • $this->nombre refiere a la propiedad nombre del objeto actual.
  • new Persona(...) crea una instancia (un objeto).

⚙️ Constructores y property promotion (PHP 8)

Antes de PHP 8 había que declarar propiedades y luego asignarlas en el constructor. PHP 8 introdujo constructor property promotion para ahorrar código.

Forma clásica (PHP 7.x y anterior):

class UsuarioOld {
    public string $nombre;
    private string $email;

    public function __construct(string $nombre, string $email) {
        $this->nombre = $nombre;
        $this->email = $email;
    }
}

Con property promotion (PHP 8+):

class Usuario {
    public function __construct(
        public string $nombre,
        private string $email
    ) {}
}
$u = new Usuario("Ana", "ana@example.com");
echo $u->nombre; // Ana

Consejo: usa promotion para DTOs y clases simples; para lógica compleja dentro del constructor usa la forma clásica.


🔒 Visibilidad: public, protected, private (con ejemplos prácticos)

  • public: accesible desde cualquier sitio.
  • protected: accesible en la clase y sus subclases.
  • private: accesible sólo dentro de la misma clase.

Ejemplo con getters/setters (buena práctica):

class Cuenta {
    private float $saldo = 0.0;

    public function depositar(float $monto): void {
        if ($monto <= 0) throw new InvalidArgumentException("Monto inválido");
        $this->saldo += $monto;
    }

    // getter público para consultar saldo
    public function obtenerSaldo(): float {
        return $this->saldo;
    }
}

$c = new Cuenta();
$c->depositar(100.50);
echo $c->obtenerSaldo(); // 100.5

Por qué usar private ? Para proteger el estado del objeto y validar cambios desde métodos controlados.


🧲 Static: propiedades y métodos compartidos

Las propiedades/métodos static pertenecen a la clase (no a la instancia).

class Contador {
    public static int $cuenta = 0;

    public static function incrementar(): void {
        self::$cuenta++;
    }
}

Contador::incrementar();
echo Contador::$cuenta; // 1

Cuándo usar: datos globales a todas las instancias (por ejemplo, contador de objetos, configuración compartida).


🧬 Herencia y override (sobrescribir métodos)

Permite crear clases hijas a partir de una clase padre.

class Animal {
    public function hablar(): string {
        return "...";
    }
}

class Perro extends Animal {
    public function hablar(): string {
        return "Guau";
    }
}

$perro = new Perro();
echo $perro->hablar(); // Guau

Nota práctica: si la clase hija necesita inicializar propiedades del padre, usa parent::__construct(...).


🧠 Abstract classes e Interfaces (contratos)

Abstract class: sirve como base y puede definir tanto métodos concretos como abstractos (sin implementación).

abstract class Figura {
    abstract public function area(): float;
    public function descripcion(): string {
        return "Soy una figura";
    }
}

class Rectangulo extends Figura {
    public function __construct(private float $ancho, private float $alto) {}
    public function area(): float {
        return $this->ancho * $this->alto;
    }
}

Interface: define un contrato puro; cualquier clase que implemente la interface debe definir esos métodos.

interface Jsonable {
    public function toJson(): string;
}

class Producto implements Jsonable {
    public function __construct(public string $nombre, public float $precio) {}
    public function toJson(): string {
        return json_encode(get_object_vars($this));
    }
}

Cuándo usar cada uno:

  • Usa interface cuando quieras garantizar métodos sin preocuparte por la implementación.
  • Usa abstract cuando quieras una base con algo de comportamiento y también que obligue a implementar ciertos métodos.

🧩 Traits: reusar comportamiento sin herencia

Los traits permiten compartir métodos entre clases sin forzar una relación padre-hijo.

trait Logger {
    public function log(string $msg): void {
        echo "[LOG] $msg
";
    }
}

class Servicio {
    use Logger;
}

$s = new Servicio();
$s->log("Listo."); // [LOG] Listo.

Precaución: evita abusar de traits; úsalos para pequeñas utilidades reutilizables.


✨ Métodos mágicos (mecanismos automáticos útiles)

Los métodos mágicos son funciones especiales que PHP llama en determinados eventos:

  • __construct() — al crear la instancia.
  • __destruct() — al destruir la instancia.
  • __toString() — cuando el objeto se trata como string.
  • __get($name) / __set($name, $value) — al acceder a propiedades inaccesibles o inexistentes.
  • __call($name, $arguments) — llamadas a métodos no existentes en la instancia.
  • __callStatic(...) — llamadas a métodos estáticos inexistentes.
  • __clone() — al clonar un objeto.
  • __sleep() / __wakeup() — para serialización.

Ejemplo sencillo con __get y __toString:

class Caja {
    private array $data = [];
    public function __get($k) { return $this->data[$k] ?? null; }
    public function __set($k, $v) { $this->data[$k] = $v; }
    public function __toString(): string { return json_encode($this->data); }
}

$c = new Caja();
$c->hola = "mundo";
echo $c->hola; // mundo
echo $c; // {"hola":"mundo"}

🪄 Clonación y copiar objetos correctamente

clone $a crea una copia superficial (shallow copy). Si las propiedades incluyen objetos, ambas instancias compartirán referencias a esos objetos a menos que implementes __clone().

Ejemplo de clonación profunda (deep clone):

class Sub {
    public function __construct(public array $items = []) {}
}

class Padre {
    public Sub $sub;
    public function __construct() {
        $this->sub = new Sub();
    }
    public function __clone() {
        // clonar el objeto contenido para no compartir la referencia
        $this->sub = clone $this->sub;
    }
}

$a = new Padre();
$a->sub->items[] = 1;

$b = clone $a;
$b->sub->items[] = 2;

print_r($a->sub->items); // [1]
print_r($b->sub->items); // [1,2]

🛠️ Ejemplo práctico extendido: mini-CRUD en memoria (explicado)

<?php
// Entidad User simple
class User {
    public function __construct(
        public int $id,
        public string $name,
        public string $email
    ) {}
}

// Repositorio: responsable de almacenar/recuperar usuarios
class UserRepository {
    /** @var array<int, User> */
    private array $store = [];

    public function save(User $u): void {
        $this->store[$u->id] = $u;
    }

    public function find(int $id): ?User {
        return $this->store[$id] ?? null;
    }

    public function all(): array {
        return array_values($this->store);
    }

    public function delete(int $id): void {
        unset($this->store[$id]);
    }
}

// Uso:
$repo = new UserRepository();
$repo->save(new User(1, 'María', 'maria@example.com'));
$repo->save(new User(2, 'Luis', 'luis@example.com'));

$user = $repo->find(1);
if ($user) {
    echo $user->name; // María
}

print_r($repo->all());

Explicación práctica:

  • UserRepository actúa como una capa de persistencia (aunque aquí sea en memoria).
  • Mantén la lógica de almacenamiento separada de la entidad User (principio de responsabilidad única).

⚠️ Manejo de errores y validaciones (ejemplo)

class Validator {
    public static function emailValido(string $email): bool {
        return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
    }
}

try {
    $email = "no-valido";
    if (!Validator::emailValido($email)) {
        throw new InvalidArgumentException("Email inválido: $email");
    }
} catch (InvalidArgumentException $e) {
    echo $e->getMessage();
}

Tip: usa excepciones para errores que no deberían ocurrir en el flujo normal y valida siempre datos de entrada.


✅ Buenas prácticas resumidas

  • Usa type hints (parámetros y retornos).
  • Valida datos de entrada (excepciones o resultados controlados).
  • Prefiere composición sobre herencia (usa objetos dentro de objetos cuando sea más lógico).
  • Mantén clases pequeñas y con una sola responsabilidad (SRP).
  • Documenta con docblocks y escribe pruebas unitarias (PHPUnit).
  • No hagas propiedades públicas si necesitas controlar acceso; usa getters/setters o readonly en PHP 8.1+.

✍️ Ejercicios para practicar (con pistas)

  1. Crear una clase Producto con id, nombre, precio. Implementa descuento(float $p) que reduzca el precio en p%.
    • Pista: valida que el porcentaje sea entre 0 y 100.
  2. Crear interfaz Persistible con métodos save() y delete(). Haz que UserRepository implemente esta interfaz.
  3. Ejercicio avanzado: crear Order que tenga una lista de Product. Implementa método total() que sume precios. Asegura que Order pueda serializarse a JSON.

📚 Glosario rápido

  • Instancia / objeto: copia concreta de una clase.
  • Propiedad: variable dentro de la clase.
  • Método: función definida en la clase.
  • Constructor: método que inicializa la instancia.
  • Visibilidad: control de acceso (public/protected/private).
  • Trait: mezcla de métodos reutilizables.
  • Interface: contrato de métodos sin implementación.

❓ FAQ (rápidas)

¿Cuándo usar una clase vs un array?
Usa una clase cuando quieras representar una entidad con comportamiento y reglas; usa arrays para datos sencillos y temporales.

¿Pueden las clases tener funciones fuera de clases?
Sí, pero mantener la lógica relacionada dentro de clases mejora la organización.

¿Debo usar siempre getters/setters en PHP?
No siempre; para DTOs simples public es aceptable. Para lógica/validación usa getters/setters.


🏁 Resumen final

  • Aprende los conceptos básicos (clase, objeto, constructor, $this).
  • Practica con ejemplos: crear clases, usar herencia, interfaces y traits.
  • Usa validaciones y excepciones para código robusto.
  • Aplica buenas prácticas: tipado, SRP y pruebas.

Video Breve

Artículos relacionados

Cómo configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20 paso a paso

Tutoriales > php

Cómo configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20 paso a paso

Aprende a configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20. Guía completa para instalar, optimizar y desplegar tu aplicación web de forma segura y eficiente.

Leer más
Bucles en PHP: while, do while, for, foreach y ejemplos prácticos

Tutoriales > php

Bucles en PHP: while, do while, for, foreach y ejemplos prácticos

Aprende todo sobre los bucles en PHP. Descubre cómo funcionan while, do while, for y foreach con ejemplos claros, además de cómo usar break y continue.

Leer más
Cómo trabajar con variables en PHP: concatenación, operaciones y ejemplos prácticos

Tutoriales > php

Cómo trabajar con variables en PHP: concatenación, operaciones y ejemplos prácticos

Aprende a usar variables en PHP con ejemplos claros. Descubre cómo declararlas, concatenar cadenas de texto, realizar operaciones matemáticas y aplicar operadores en tus proyectos de programación web.

Leer más
Arrays en PHP: Guía Completa con Ejemplos

Tutoriales > php

Arrays en PHP: Guía Completa con Ejemplos

Aprende todo sobre los arrays en PHP: qué son, cómo se crean, tipos de arrays, funciones útiles y ejemplos prácticos para programadores principiantes.

Leer más
Inicios en PHP: Todo lo que debes saber sobre variables y sus tipos

Tutoriales > php

Inicios en PHP: Todo lo que debes saber sobre variables y sus tipos

Aprende los fundamentos de PHP desde cero. Descubre qué son las variables, cómo se declaran, sus tipos principales y ejemplos prácticos para comenzar a programar en PHP.

Leer más
Condicionales en PHP: if, else, elseif, switch y ejemplos prácticos

Tutoriales > php

Condicionales en PHP: if, else, elseif, switch y ejemplos prácticos

Aprende a usar condicionales en PHP paso a paso. Descubre cómo funcionan if, else, elseif, switch, el operador ternario y ?? con ejemplos prácticos y buenas prácticas de programación.

Leer más
Cáncer en la Vida Espiritual: Conexión interior y crecimiento personal

Astrología > Cáncer

Cáncer en la Vida Espiritual: Conexión interior y crecimiento personal

Explora cómo vive Cáncer la espiritualidad. Descubre su conexión con la intuición, la energía lunar y el desarrollo interior que guía su vida espiritual

Leer más
Tauro en la amistad: lealtad, confianza y conexiones duraderas

Astrología > Tauro

Tauro en la amistad: lealtad, confianza y conexiones duraderas

Descubre cómo es Tauro en la amistad: sus cualidades como amigo, sus desafíos y consejos para fortalecer la relación con este signo de Tierra.

Leer más
Tauro en la vida espiritual: estabilidad, conexión y crecimiento interior

Astrología > Tauro

Tauro en la vida espiritual: estabilidad, conexión y crecimiento interior

Descubre cómo es Tauro en la vida espiritual: sus fortalezas, desafíos y consejos prácticos para lograr equilibrio y despertar interior.

Leer más
10 Negocios Digitales Rentables en 2025 (Con Poca Inversión)

Economía > Emprendimiento Digital

10 Negocios Digitales Rentables en 2025 (Con Poca Inversión)

Descubre 10 negocios digitales rentables en 2025 que puedes iniciar con poca inversión y gran potencial de crecimiento. Ideal para emprendedores que buscan independencia financiera.

Leer más
Compatibilidad de Leo con los demás signos: amor, amistad y energía zodiacal

Astrología > Leo

Compatibilidad de Leo con los demás signos: amor, amistad y energía zodiacal

Descubre con qué signos es más compatible Leo en el amor, la amistad y el trabajo. Análisis detallado de afinidades, tensiones y relaciones ideales para este signo de fuego.

Leer más
Tartaria: la civilización perdida que Internet dice que fue borrada de la historia

Internacional > Conspiración

Tartaria: la civilización perdida que Internet dice que fue borrada de la historia

Descubre qué es Tartaria, la misteriosa civilización que aparece en mapas antiguos y que muchos creen fue eliminada de la historia oficial. ¿Realidad o mito moderno?

Leer más
Virgo en la Amistad: Lealtad, Conexiones y Energía Social del Signo

Astrología > Virgo

Virgo en la Amistad: Lealtad, Conexiones y Energía Social del Signo

Descubre cómo es Virgo en la amistad: su forma de relacionarse, cómo demuestra cariño, qué espera de sus amistades y con qué signos se lleva mejor. Una guía clara y completa sobre la energía social de Virgo.

Leer más
Aries en la vida espiritual: energía, desafíos y despertar interior

Astrología > Aries

Aries en la vida espiritual: energía, desafíos y despertar interior

Descubre cómo Aries influye en la vida espiritual: su energía, retos kármicos y el camino hacia el equilibrio interior.

Leer más
5 Tendencias Tecnológicas que Transformarán Nuestra Vida en 2025

Tecnología > Innovación

5 Tendencias Tecnológicas que Transformarán Nuestra Vida en 2025

Descubre las 5 tendencias tecnológicas que revolucionarán la vida cotidiana en 2025. Desde inteligencia artificial hasta realidad aumentada, conoce cómo la innovación transformará el futuro.

Leer más
Trucos psicológicos para gastar menos y ahorrar más

Economía > Finanzas Personales

Trucos psicológicos para gastar menos y ahorrar más

Descubre los mejores trucos psicológicos para gastar menos y ahorrar más. Estrategias simples y efectivas para mejorar tu relación con el dinero.

Leer más
7 ejercicios fáciles que puedes hacer en casa para estar en forma

Salud > Bienestar y hábitos

7 ejercicios fáciles que puedes hacer en casa para estar en forma

Descubre 7 ejercicios fáciles y efectivos que puedes hacer en casa sin necesidad de equipo. Mantente en forma y mejora tu salud desde la comodidad de tu hogar.

Leer más
5 destinos económicos en Perú para viajar este fin de año 2025 (Experiencias increíbles con bajo presupuesto)

Viajes y Turismo > Destinos y Experiencias

5 destinos económicos en Perú para viajar este fin de año 2025 (Experiencias increíbles con bajo presupuesto)

Descubre los 5 mejores destinos económicos para viajar en Perú este fin de año 2025. Guía completa con precios estimados, actividades recomendadas, opciones low cost y calificación para viajes solo, en pareja o con amigos. Perfecto para mochileros y viajeros de bajo presupuesto.

Leer más
Compatibilidad de Virgo con los 12 signos: amor, amistad y energía zodiacal

Astrología > Virgo

Compatibilidad de Virgo con los 12 signos: amor, amistad y energía zodiacal

Descubre la compatibilidad completa de Virgo con los 12 signos del zodiaco: amor, amistad y energía zodiacal. Una guía detallada para entender cómo se relaciona Virgo con cada signo en 2025.

Leer más
La llamada desde una casa vacía: el caso real que desconcertó a la policía

Terror > Historias Reales

La llamada desde una casa vacía: el caso real que desconcertó a la policía

Una llamada de emergencia proveniente de una casa abandonada dejó perplejos a los agentes. Sin línea activa, sin electricidad y sin habitantes… ¿quién estaba llamando? Un caso real que aún genera escalofríos.

Leer más
10 Destinos Sorprendentes para Viajar en 2025 que Debes Conocer

Viajes y Turismo > Destinos y Experiencias

10 Destinos Sorprendentes para Viajar en 2025 que Debes Conocer

Explora 10 destinos sorprendentes para viajar en 2025. Desde aventuras exóticas hasta escapadas relajantes, descubre lugares que harán tus vacaciones inolvidables.

Leer más
Cáncer en el Trabajo: Cómo es el signo Cáncer en su vida profesional

Astrología > Cáncer

Cáncer en el Trabajo: Cómo es el signo Cáncer en su vida profesional

Descubre cómo es Cáncer en el trabajo: sus fortalezas, debilidades y la forma en que este signo zodiacal se desempeña en su vida profesional.

Leer más
4 teorías de conspiración que resultaron ser ciertas (que casi nadie conoce)

Internacional > Conspiración

4 teorías de conspiración que resultaron ser ciertas (que casi nadie conoce)

No son las típicas conspiraciones. Estos 4 casos reales fueron negados durante años hasta que se confirmaron oficialmente. Historias reales que parecen ficción.

Leer más
Cáncer en la Salud: Bienestar físico y emocional del signo zodiacal

Astrología > Cáncer

Cáncer en la Salud: Bienestar físico y emocional del signo zodiacal

Descubre cómo influye el signo Cáncer en la salud física y emocional. Conoce sus puntos fuertes, vulnerabilidades y consejos para mantener el equilibrio y el bienestar diario

Leer más
Cómo es Géminis en la amistad: cualidades y desafíos del signo

Astrología > Géminis

Cómo es Géminis en la amistad: cualidades y desafíos del signo

escubre cómo es Géminis como amigo: su personalidad en la amistad, fortalezas, desafíos y consejos para mantener una relación duradera con este signo.

Leer más
Biografía de Zully (Zulamita): Edad, carrera, polémicas y éxito en redes

Entretenimiento Digital > Streamers Peruanos

Biografía de Zully (Zulamita): Edad, carrera, polémicas y éxito en redes

Descubre la historia de Zully, conocida como Zulamita, la influencer peruana que conquistó TikTok y otras redes sociales. Conoce su biografía, edad, trayectoria, polémicas y evolución hacia la música.

Leer más
Clases y Objetos en PHP: Guía completa de POO con ejemplos

Tutoriales > php

Clases y Objetos en PHP: Guía completa de POO con ejemplos

Aprende Clases y Objetos en PHP (POO): sintaxis, propiedades, métodos, visibilidad, herencia, interfaces, traits, magic methods y ejemplos prácticos. Ideal para PHP 7/8+

Leer más
Los descubrimientos astronómicos más importantes de 2025

Astronomía > Universo

Los descubrimientos astronómicos más importantes de 2025

Explora los hallazgos astronómicos más destacados de 2025: el nuevo satélite de Urano, un cometa interestelar, fenómenos alrededor de agujeros negros, el exoplaneta TWA 7 b, y la superestructura cósmica “Quipu”. Conoce cómo estas revelaciones transforman nuestra comprensión del universo.

Leer más
4 Teorías de Conspiración Que Resultaron Ser Ciertas (Con Evidencia)

Internacional > Conspiración

4 Teorías de Conspiración Que Resultaron Ser Ciertas (Con Evidencia)

Ejemplos reales de teorías de conspiración que fueron consideradas absurdas o falsas, pero que después terminaron confirmándose con evidencia, documentos desclasificados o investigaciones oficiales.

Leer más
7 Estrategias para Emprender con Éxito en 2025

Economía > Emprendimiento Digital

7 Estrategias para Emprender con Éxito en 2025

Descubre 7 estrategias clave para emprender con éxito en 2025. Aprende cómo planificar, innovar y liderar tu negocio para alcanzar el crecimiento y la productividad.

Leer más
Biografía de Andy Merino (Zein): trayectoria, éxitos y eventos clave

Entretenimiento Digital > Streamers Peruanos

Biografía de Andy Merino (Zein): trayectoria, éxitos y eventos clave

Conoce a Andy Merino, mejor conocido como Zein o ElZeein: su carrera desde YouTube hasta Kick, récords en streaming, organización de eventos y su rol como pionero del contenido digital en Perú.

Leer más