<?php
// Clase base o interfaz
interface Animal {
    public function hacerSonido();
}

// Clases que implementan la interfaz con su propia versión del método
class Perro implements Animal {
    public function hacerSonido() {
        echo "Guau Guau\n";
    }
}

class Gato implements Animal {
    public function hacerSonido() {
        echo "Miau Miau\n";
    }
}

// Función que usa polimorfismo para llamar el método hacerSonido de cualquier Animal
function hacerRuido(Animal $animal) {
    $animal->hacerSonido();
}

$miPerro = new Perro();
$miGato = new Gato();

hacerRuido($miPerro); // Imprime: Guau Guau
hacerRuido($miGato);  // Imprime: Miau Miau
?>