Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Llamada multiple

Estas en el tema de Llamada multiple en el foro de PHP en Foros del Web. Hola quería saber si se podía hacer lo siguiente desde PHP: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original class MiClase {     public function metodo1 ...
  #1 (permalink)  
Antiguo 01/09/2014, 12:25
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Llamada multiple

Hola quería saber si se podía hacer lo siguiente desde PHP:

Código PHP:
Ver original
  1. class MiClase {
  2.     public function metodo1() {
  3.        
  4.     }
  5.    
  6.     public function metodo2() {
  7.    
  8.     }
  9. }
  10.  
  11. $obj = new MiClase();
  12. $obj->metodo1()->metodo2();

(Se que da error), pero; ¿Hay alguna forma de lograrlo?

Saludos!

Última edición por juan_14nob; 01/09/2014 a las 12:26 Razón: Error de tipeo
  #2 (permalink)  
Antiguo 01/09/2014, 13:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Llamada multiple

Claro que es posible, sólo debes asegurarte de devolver la instancia al finalizar la ejecución del método:

Código PHP:
Ver original
  1. class MiClase {
  2.         public function metodo1() {
  3.           return this;
  4.         }
  5.        
  6.         public function metodo2() {
  7.        
  8.         }
  9.     }
  10.      
  11.     $obj = new MiClase();
  12.     $obj->metodo1()->metodo2();
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/09/2014, 13:07
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: Llamada multiple

Cita:
Iniciado por pateketrueke Ver Mensaje
Claro que es posible, sólo debes asegurarte de devolver la instancia al finalizar la ejecución del método:

Código PHP:
Ver original
  1. class MiClase {
  2.         public function metodo1() {
  3.           return this;
  4.         }
  5.        
  6.         public function metodo2() {
  7.        
  8.         }
  9.     }
  10.      
  11.     $obj = new MiClase();
  12.     $obj->metodo1()->metodo2();


Gracias paketeretruke! jaja déjame hacerte una pequeña corrección para aquellos que vean este post, falto el return $this , era mas fácil de los que pensaba.

Código PHP:
Ver original
  1. class MiClase {
  2.         public function metodo1() {
  3.           return $this;
  4.         }
  5.        
  6.         public function metodo2() {
  7.        
  8.         }
  9.     }
  10.      
  11.     $obj = new MiClase();
  12.     $obj->metodo1()->metodo2();
[/QUOTE]



Saludos!

Etiquetas: llamada
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:48.