Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Skeletron en 5 Enero 2011, 03:04 am



Título: Como crear un objeto sin inicializarlo?
Publicado por: Skeletron en 5 Enero 2011, 03:04 am
HOla gente.
Resulta que tengo una clase, que tiene otra clase dentro.

Supongamos que la clase "persona" tiene unos strings, y la clase "dios" tiene un objeto persona, y 2 strings mas.

Pero cuando un objeto persona se crea, necesita que se pase por parametro un dato. Pero cuando creo una instancia de Dios, no tengo ese dato para pasarle.

QUiero hacer algo asi:

Código
  1. class Dios{
  2. private (persona)Persona;
  3.  
  4. function IniciarlizarPersona($id){
  5. $this->Persona = new Persona($id);
  6. }
  7. }


Se puede hacer algo así?
Se nota lo que pregunto?
Quiero tener una variable del tipo Persona creada, reservada, pero sin inicializar.


Título: Re: Como crear un objeto sin inicializarlo?
Publicado por: AFelipeTrujillo en 5 Enero 2011, 18:14 pm
Los parámetros constructor se pueden usar con datos que ud defina ... me explico mejor con codigo:

Código
  1. <?php
  2.  class Persona{
  3.     private str1;
  4.     private str2;
  5.     function __construct($str1 = null, $str2=null){
  6.         $this->str1 = $str1;
  7.         $this->str2 = $str2;
  8.     }
  9.  
  10.     public function setStr1($str1){
  11.         $this->str1 = $str1;
  12.     }
  13.  
  14.     public function setStr2($str2){
  15.         $this->str2 = $str2;
  16.     }
  17.  
  18.     public function getStr1($str1){
  19.         return $this->str1;
  20.     }
  21.  
  22.     public function getStr2($str2){
  23.         return $this->str2;
  24.     }
  25.  }
  26.  
  27. $p = new Persona(); // Los String estan nulos
  28. $p->setStr1("Esta es la cadena 1"); //Modifico el Str1
  29. $p->setStr2("Esta es la cadena 2"); //Modifico el Str2
  30.  
  31. echo $p->getStr1()." ".$p->getStr2(); //Los imprimo
  32. ?>

si entiende el concepto ???

se crea el objeto y después modifico sus atributos