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

Operador "->" en metodos

Estas en el tema de Operador "->" en metodos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos. Soy un programador java que esta iniciando en PHP, asi que, estoy tratando de programar orientado a objetos como lo haria en ...
  #1 (permalink)  
Antiguo 23/04/2005, 11:41
 
Fecha de Ingreso: abril-2005
Mensajes: 1
Antigüedad: 19 años
Puntos: 0
Pregunta Operador "->" en metodos

Hola a todos.

Soy un programador java que esta iniciando en PHP, asi que, estoy tratando de programar orientado a objetos como lo haria en java, manejando todos los principios de la orientacion a objetos y el estilo de programar en java . solo que me he estado dando de topes . mi problema es este:

Tengo una clase que contiene otra clase y este a su ves tiene otra.
objeto A contiene un objeto B y objeto B contiene un Objeto C y este a su ves tiene un metodo imprimir():
En java puedo realizar esto: a es un objeto de la clase A;


a.getB().getC().imprimir();

en su version en PHP supuse que seria de esta forma

$a->getB()->getC()->imprimir();

como pueden ver en la version de php, a mi me marca un error

Parse error: parse error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in c:\appserv\www\ampi\modules\solicitudes\dominio\lo gicadenegocio\prueba.php on line 42


mi pregunta es ¿Si con el operador "->" puedo hacer algo similar en PHP?;
y si se puede digame como porfiss , he estado buscando por todos lados algo que me indique si se puede o no se puede,
por toda su atencion gracias , muchas gracias
  #2 (permalink)  
Antiguo 24/04/2005, 07:35
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
si como supong el método getB y getC te devuelven un objeto o una referencia a un objeto, tienes que separar las llamadas:

Código PHP:
$b $a->getB();
$c $b->getC();
$c->imprimir(); 
un saludo.
saludos
  #3 (permalink)  
Antiguo 25/04/2005, 07:08
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
De hecho, la manera correcta de hacerlo en PHP 4.Xm sería :
[PHP]<?php
$b =& $a->getB();
$c =& $b->getC();
$c->imprimir();
?>[PHP]

Aunque si tuvieras ya alguna de las versiones de PHP5 instaladas en tu servidor, puedes hacerlo directamente de la manera que pretendías:

$a->getB()->getC()->imprimir();

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #4 (permalink)  
Antiguo 14/05/2005, 05:41
 
Fecha de Ingreso: noviembre-2004
Mensajes: 17
Antigüedad: 19 años, 6 meses
Puntos: 0
Yo lo hago de esta manera: Usando claudators.

{{$a->getB()}->getC()}->imprimir();
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 23:40.