Tutoriales PHP MYSQL programación web php base de datos mysql

\n"; } } } lecturas();

          


PHP - Las Clases

      

Autor: Carlos Carmona

Polimorfismo en PHP

PHP soporta la característica del polimorfismo. El polimorfismo implica que, teniendo varias clases con métodos con el mismo nombre, otra función podrá definir según el objeto pasado como parámetro qué método de qué clase se utilizará. Nada mejor que un ejemplo para entenderlo:

Pongamos que tenemos 2 clases (perro y persona) que implementan la función andar:

  1. <?PHP
  2.  
  3. class perro {
  4.  
  5. function andar() {
  6. //Código
  7. }
  8.  
  9. }
  10.  
  11. class persona {
  12.  
  13. function andar() {
  14. //Código
  15. }
  16.  
  17. }
  18.  
  19. ?>

Ahora creamos otra clase llamada movimiento y le ponemos el método andar, de la siguiente manera:

  1. <?PHP
  2.  
  3. class movimiento {
  4.  
  5. function andar($objeto) {
  6. $objeto->andar();
  7. }
  8.  
  9. }
  10.  
  11. ?>

En nuestro código PHP, instanciaremos las tres clases, y para utilizar el polimorfismo llmaremos al método andar de la siguiente manera:

  1. <?PHP
  2.  
  3. $VarPerro = new perro();
  4. $VarPersona = new persona();
  5. $VarMovimiento = new movimiento();
  6.  
  7. //Para llamar al método andar de la clase perro
  8. $VarMovimiento->andar($VarPerro);
  9.  
  10. //Para llamar al método andar de la clase persona
  11. $VarMovimiento->andar($VarPersona);
  12.  
  13. ?>

Es decir, siempre invocamos al método andar de la clase movimiento, pasándole el objeto instancia de la clase que queremos ejecutar.

Visto así no tiene sentido, en el ejemplo anterior es más práctico llamar directamente al método que nos interese, pero se podría dar el caso de que según una serie de parámetros dinámicos, como puedan ser los resultados de una consulta a base de datos, queramos usar un método u otro. De este modo, con el polimorfismo podremos automatizar esta tarea.

Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)