Clases anónimas en PHP
Bienvenido a una nueva lección de nuestro curso básico de PHP 8. Hoy nos metemos con las clases anónimas, una herramienta súper útil para crear objetos rápidos sin complicarte la vida. Si ya manejas clases y herencia, esto es como un atajo genial. Todo va a ser claro, práctico y con ejemplos que te van a flipar. ¡Empecemos!
¿Qué son las clases anónimas?
Las clases anónimas son como clases express: las defines y usas en el momento, sin darles un nombre fijo. Son perfectas cuando necesitas un objeto temporal para una tarea específica y no vale la pena crear una clase completa. Imagina que es como pedir una pizza personalizada sin guardarla en el menú: la haces, la usas y listo.
La receta básica en PHP es esta:
$miObjeto = new class { // Propiedades y métodos aquí };
new class
: Crea la clase y el objeto al mismo tiempo.- No tiene nombre, pero la guardas en una variable para usarla.
Probando clases anónimas en acción
¡Manos a la obra! Crea un archivo clases_anonimas.php
en curso_php8
(dentro de C:\xampp\htdocs
) y prueba esto:
Ejemplo 1: Televisor anónimo
<?php $televisor = new class("Samsung", 2018, "Negro", "42 pulgadas") { public $marca; public $modelo; public $color; public $tamanio; public function __construct($marca, $modelo, $color, $tamanio) { $this->marca = $marca; $this->modelo = $modelo; $this->color = $color; $this->tamanio = $tamanio; } public function marcaModelo() { return "$this->marca modelo $this->modelo"; } public function calcularAntiguedad() { $antiguedad = date("Y") - $this->modelo; return "El televisor tiene $antiguedad años."; } }; echo $televisor->marcaModelo() . "<br>"; echo $televisor->calcularAntiguedad() . "<br>"; ?>
Abre http://localhost/curso_php8/clases_anonimas.php
. Verás algo como:

¿Qué pasó?
- Creamos un objeto
$televisor
con una clase anónima. - Le dimos propiedades y métodos como cualquier clase.
- Lo usamos directamente con
->
.
Ejemplo 2: Mascota anónima
<?php $miMascota = new class { public $nombre; public function emitirSonido() { echo "¡Guau guau!<br>"; } }; $miMascota->nombre = "Nilo"; echo "$miMascota->nombre dice: "; $miMascota->emitirSonido(); ?>

¿Qué pasó?
- Una clase anónima simple con un nombre y un sonido.
- Asignamos el nombre después y llamamos al método.
Ejemplos prácticos
Ejemplo: Saludo rápido
<?php $saludo = new class("Ana") { public $nombre; public function __construct($nombre) { $this->nombre = $nombre; } public function decirHola() { echo "Hola, soy $this->nombre.<br>"; } }; $saludo->decirHola(); ?>

Ejemplo: Herencia anónima
<?php class Vehiculo { public $marca; public function mover() { echo "El vehículo $this->marca se mueve.<br>"; } } $moto = new class("Yamaha") extends Vehiculo { public $marca; public function __construct($marca) { $this->marca = $marca; } public function hacerTruco() { echo "La moto $this->marca hace un caballito.<br>"; } }; $moto->mover(); $moto->hacerTruco(); ?>

¿Qué pasó?
- La clase anónima hereda de
Vehiculo
conextends
y añade su propio método.
Ejercicios para practicar
¡Tu turno de rockearlo! Ve a curso_php8
y prueba estos retos:
- Mensaje personalizado
Creamensaje_anonimo.php
:
<?php $mensaje = new class("Carlos") { public $nombre; public function __construct($nombre) { $this->nombre = $nombre; } public function enviarMensaje() { echo "¡Hola $this->nombre! ¿Cómo estás hoy?<br>"; } }; $mensaje->enviarMensaje(); ?>
- Motocicleta con herencia
Creamoto_anonima.php
:
<?php class Vehiculo { public $marca; public function __construct($marca) { $this->marca = $marca; } public function mover() { echo "El vehículo $this->marca se mueve.<br>"; } } $moto = new class("Honda") extends Vehiculo { public function acelerar() { echo "La moto $this->marca acelera rápido.<br>"; } }; $moto->mover(); $moto->acelerar(); ?>
Ejecuta en localhost/curso_php8/
y juega con los valores.
Consejos para no enredarte
- Uso rápido: Perfectas para cosas temporales; no las uses si necesitas reutilizar mucho.
- Herencia: Puedes heredar con
extends
en la misma línea denew class
. - Legibilidad: Si se pone complejo, mejor usa una clase normal con nombre.
¡A por más POO!
¡Gran trabajo, máquina! Ahora las clases anónimas son tu as bajo la manga para objetos rápidos y flexibles. En la próxima lección, veremos iteración de objetos para recorrer propiedades como pros. Si algo no te queda claro, déjame un comentarios.
Lo que aprendiste hoy:
- Qué son: Clases sin nombre que creas y usas al instante.
- Cómo se hacen: Con
new class {}
y sus métodos dentro. - Ejemplos vivos: Hiciste televisores y mascotas al vuelo.
- Practicaste: Creaste mensajes y motos con herencia como crack.
- Tip del pro: Úsalas para tareas puntuales y mantén el código limpio.