Polimorfismo con php

Polimorfismo se define como la habilidad de un objeto de determinar que método debe invocar para un objeto pasado como argumento en tiempo de ejecución.

Por ejemplo si tenemos una clase figura que tiene un método “dibujar” y sus clases derivadas circulo y rectángulo, cuando reemplazamos el método “dibujar” podemos tener una función que cuente con un argumento “x” y después llamar a $x->dibujar(). Si tenemos polimorfismo el método “dibujar” llamado dependerá del tipo de objeto que pasemos a la función.

El polimorfismo es muy fácil de aplicar y utilizar en lenguajes interpretados como PHP, pero no es tan secillo en lenguajes compilados, ya que no sabemos que método deberemos llamar de antemano.

< ?php function niceDrawing($x) { //Supongamos que este es un método de la clase Board. $x->draw();
}
$obj=new Circle(3,187);
$obj2=new Rectangle(4,5);
$board->niceDrawing($obj); //Podemos llamar al método draw de circulo.
$board->niceDrawing($obj2); //Podemos llamar al método draw de rectángulo.
?>

Fuente: Documento Generación de web sites dinámicos usando PHP