Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/03/2013, 16:53
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Sobrecarga en PHP POO

Sobrecarga es un tipo especial de polimorfismo, aplicado a operadores.PHP no soporta polimorfismo (ni sobrecarga) ya que es un lenguaje no tipado.
Supón que tienes un método Pagar() en una clase, y quieres poder pagar con monedas, con tarjeta, o con un cheque.Éste sería un caso válido para hacer versiones polimórficas de Pagar(Monedas monedas){} .. Pagar(Cheque cheque).. etc.
En PHP, este comportamiento lo construyes definiendo un solo método Pagar($medio), y haciendo is_a , get_class(), etc, para determinar el tipo del objeto que han pasado como parámetro, y derivar al método (privado) correspondiente (Pagar_cheque, Pagar_tarjeta, etc)

Por otro lado, hay que, aunque PHP no permite al programador sobrecargar operadores, el operador '+' funciona con diferentes tipos de datos (números, arrays), en algo muy parecido a lo que sería una sobrecarga de operador típica.