Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

sobrecarga de metodos en php ¿????

Estas en el tema de sobrecarga de metodos en php ¿???? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola a todos , el motivo de este post , es para que me orienten sobre algo , que no se si se pueda en ...
  #1 (permalink)  
Antiguo 21/10/2008, 11:58
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
sobrecarga de metodos en php ¿????

hola a todos , el motivo de este post , es para que me orienten sobre algo , que no se si se pueda en php5 , la sobrecarga de metodos ,

es posible la sobrecarga de metodos en php ??

o como se aria algo parecido a la sobrecarga ??

  #2 (permalink)  
Antiguo 21/10/2008, 12:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: sobrecarga de metodos en php ¿????

Tema trasladado a PHP Orientado a Objetos.

Es perfectamente posible y solamente tienes que re-definir el método (siempre y cuando sea public o protected).

Saludos.
  #3 (permalink)  
Antiguo 21/10/2008, 15:48
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: sobrecarga de metodos en php ¿????

La sobrecarga tal y como se conoce en otros lenguajes de programación (Java por ejemplo) no existe en PHP, pero se puede simular. En la página del manual lo puedes ver:
Código HTML:
http://es.php.net/manual/es/language.oop5.overloading.php
No siempre se pueden sobrecargar métodos. En un proyecto que estoy desarrollando quería sobrecargar un método que se hereda de una clase abstracta.
Si intentas sobrecargar como se describe en el manual obtienes un error que te indica que la clase que hereda tiene un método abstracto, por lo que o lo defines o declaras la clase como abstracta. Si lo defines, de nada te sirve usar __call. Si no lo defines, no puedes instanciar la clase.
Mejor se ve con el código delante:
Código PHP:
abstract class claseAbstracta{
    public abstract function 
metodo($arg1);
}


class 
claseEjemplo extends claseAbstracta{
    public function 
metodo($arg1){
        
// ...
    
}

Para este caso la única solución que he encontrado ha sido pasar los parámetros a través del constructor o de otros métodos y comprobar dentro del método a sobrecargar si están definidos o no. Una solución poco elegante, pero la única que se me ocurre.

Si estoy en un error, me encantaría que me sacaseis de él.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:09.