Volver
Ctrl+Space
◑
Copiar
Descargar
Restaurar
Ejecutar
Ctrl+Enter
<?php // POO en PHP - Ejemplo 1: Clase básica // ====================================== // Una clase agrupa propiedades (datos) y métodos (comportamiento). // Con new creamos objetos — instancias de esa clase. class Persona { public string $nombre; public int $edad; public string $ciudad; // Constructor: se ejecuta automáticamente al hacer new Persona(...) public function __construct(string $nombre, int $edad, string $ciudad = "Sin especificar") { $this->nombre = $nombre; $this->edad = $edad; $this->ciudad = $ciudad; } // Método — comportamiento del objeto public function saludar(): string { return "Hola, soy {$this->nombre} y tengo {$this->edad} años."; } public function esMayorDeEdad(): bool { return $this->edad >= 18; } public function presentarse(): string { $mayoria = $this->esMayorDeEdad() ? "mayor de edad" : "menor de edad"; return "Soy {$this->nombre}, vivo en {$this->ciudad} y soy {$mayoria}."; } } // ── Crear objetos ────────────────────────────────────────────────────────── $ana = new Persona("Ana García", 28, "Córdoba"); $carlos = new Persona("Carlos López",15, "Rosario"); $maria = new Persona("María Pérez", 32); // ciudad por defecto echo "=== Saludos ===<br>"; echo $ana->saludar() . "<br>"; echo $carlos->saludar() . "<br>"; echo $maria->saludar() . "<br>"; echo "<br>=== Presentaciones ===<br>"; echo $ana->presentarse() . "<br>"; echo $carlos->presentarse() . "<br>"; echo $maria->presentarse() . "<br>"; echo "<br>=== Acceder a propiedades directamente ===<br>"; echo "Nombre de \$ana : {$ana->nombre}<br>"; echo "Edad de \$carlos : {$carlos->edad}<br>"; echo "Ciudad de \$maria: {$maria->ciudad}<br>"; echo "<br>=== Modificar propiedades ===<br>"; $ana->ciudad = "Buenos Aires"; echo "Nueva ciudad de Ana: {$ana->ciudad}<br>"; echo "<br>=== Cada objeto es independiente ===<br>"; $p1 = new Persona("Pedro", 20, "Mendoza"); $p2 = new Persona("Laura", 25, "Salta"); $p1->edad = 21; // solo afecta a $p1 echo "Pedro: {$p1->edad} años — Laura: {$p2->edad} años<br>"; ?>