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

objeto->metodo->objeto->metodo

Estas en el tema de objeto->metodo->objeto->metodo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy realizando unas cositas con PHP y estoy intentando de hacerlo totalmente orientado a objetos. La duda en cuestión es que tengo una clase, ...
  #1 (permalink)  
Antiguo 13/05/2012, 05:54
 
Fecha de Ingreso: noviembre-2011
Mensajes: 32
Antigüedad: 12 años, 5 meses
Puntos: 0
objeto->metodo->objeto->metodo

Hola,

estoy realizando unas cositas con PHP y estoy intentando de hacerlo totalmente orientado a objetos.

La duda en cuestión es que tengo una clase, accedo a un método que me devuelve un objeto y luego intento acceder directamente a un método del objeto que me devuelve pero me da error, es decir, intento hacer:

$articulo->getEstado()->getDescripcion()

getEstado devolvería un objeto de tipo estado con su método getDescripcion(), algo muy común en Java, o C++.

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 13/05/2012, 06:53
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: objeto->metodo->objeto->metodo

Hola, que es lo que quieres? acceder a los metodos de la classe?

supongamos que tienes la clase clase
y tiene metodo1 y metodo2
Código PHP:

$prueba
= new clase();
$prueba->metodo1();
$prueba->metodo2(); 
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting
  #3 (permalink)  
Antiguo 13/05/2012, 07:50
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: objeto->metodo->objeto->metodo

También es común en PHP, method chaining esta disponible a partir de PHP 5, que error te muestra concretamente ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 13/05/2012, 07:55
 
Fecha de Ingreso: noviembre-2011
Mensajes: 32
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: objeto->metodo->objeto->metodo

Te agradezco mucho tu respuesta pero no has entendido muy bien la pregunta.

El problema no es acceder a los métodos de un objeto, sino acceder a los métodos de un objeto devuelto desde un método de otro objeto.

Te pongo un ejemplo:

Código PHP:

class coche {
   private 
$color;  // Atributo de tipo color (otra clase)

   
function getColor(){
       return 
$this->color;
   }

}

class 
color {
   private 
$nombre;

   function 
getNombre(){
       return 
$this->nombre;
   }

/* Lo que quiero hacer: */
$coche = new coche();

$coche->getColor()->getNombre();  // No me funciona, no sé por qué si esto en la POO funciona perfectamente en Java o C++ 
Gracias y un saludo.
  #5 (permalink)  
Antiguo 13/05/2012, 07:58
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: objeto->metodo->objeto->metodo

Código PHP:
Ver original
  1. class a
  2. {
  3.  
  4. private $instancia;
  5. public function getEstado()
  6. {
  7.     if (!$this->instancia instanceof b){
  8.          $this->instancia = new b();
  9.       }
  10.          return $this->instancia;  
  11. }          
  12. }
  13. class b
  14. {
  15.     public function getDescripcion()
  16.     {
  17.             return "estado bien";
  18.            
  19.     }
  20.  
  21. }
  22. $r = new a();
  23. echo $r->getEstado()->getDescripcion();

Saludos.
  #6 (permalink)  
Antiguo 13/05/2012, 07:58
 
Fecha de Ingreso: noviembre-2011
Mensajes: 32
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: objeto->metodo->objeto->metodo

Ya funciona, gracias.

El concepto estaba bien, sólo había un error en un set.

Saludos.
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 21:37.