Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2011, 13:47
Avatar de jotaincubus
jotaincubus
 
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Duda con clases (instaciar clase)

Buen día,

Tengo una clase la cual los todos métodos van a utilizar otra clase y unos métodos de esa clase (en comun), mi pregunta es como instanciar la clase en los métodos o puedo instanciarla en el constructor para que todos los métodos queden con la clase ya instanciada.

Ejemplo de la clase que quiero hacer:

Código PHP:
Ver original
  1. class ClaseA{
  2.    
  3.     function __construct(){
  4.     }
  5.    
  6.     public function uno(){
  7.         require_once('unaPagina.php');
  8.         $unaVar = new ClassB;
  9.         $unaVar->metodo1;
  10.         $unaVar->metodo2;
  11.         // otros codigos aqui
  12.     }
  13.  
  14.     public function dos(){
  15.         require_once('unaPagina.php');
  16.         $unaVar = new ClassB;
  17.         $unaVar->metodo1;
  18.         $unaVar->metodo2;
  19.         // otros codigos aqui
  20.     }
  21.    
  22. }

Ejemplo de posible solucion:

Código PHP:
Ver original
  1. require_once('unaPagina.php');
  2. class ClaseA{
  3.    
  4.     function __construct(){
  5.         $this->claseB = instanciarClaseB();
  6.     }
  7.    
  8.     public function instanciarClaseB(){
  9.         $unaVar = new ClaseB;
  10.         $unaVar->metodo1;
  11.         $unaVar->metodo2;
  12.     }
  13.    
  14.     public function uno(){
  15.         $unaVar->metodo3; // ClaseB
  16.     }
  17.  
  18.     public function dos(){
  19.         $unaVar->metodo4; // ClaseB
  20.     }
  21.    
  22. }

O solo es posible con:

Código PHP:
Ver original
  1. class ClaseA extends ClaseB{
  2. // codigo aqui
  3. }

Muchas gracias por sacarme de la duda.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 14/07/2011 a las 13:49 Razón: Error en códigos.