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

Dudas con contructores

Estas en el tema de Dudas con contructores en el foro de Frameworks y PHP orientado a objetos en Foros del Web. bueno me gustaria que alguien por favor me explicara esto de los constructores function __construct(){ } lo primero es todas las variables que manejara la ...
  #1 (permalink)  
Antiguo 20/01/2011, 22:59
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Dudas con contructores

bueno me gustaria que alguien por favor me explicara esto de los constructores

function __construct(){

}

lo primero es todas las variables que manejara la clase deben estar en el constructor ??? tanto publicas como privadas ?

se que lo que va entre parentesis son como los datos que tendran las variables por defecto, es verdad ? o solo debo colocar las que estan dentro de los parametros del constructor ?

function __construct($var0=1, $var1=2){
$this->var0 = $var;
$this->var1 = $var1;
$this->varN = $varN;

}

si yo tengo un codigo en una pagina asi:

$variable = $_SESSION['nombre'];
$otra = new Clase;
$otra->mostrar;

como le paso esa variable a la clase si declare en la clase que esa $variable es public ?

Muchas gracias por las respuestas
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 21/01/2011, 02:49
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Dudas con contructores

Hola jotaincubus,

Cita:
lo primero es todas las variables que manejara la clase deben estar en el constructor ??? tanto publicas como privadas ?
No, en el constructor de una clase se deben inicializar las variables que sean necesarias para el correcto funcionamiento inicial de dicha clase. Los atributos, tanto públicos como privados se deben declarar en la clase y, si se necesita, se inicializan en el constructor.

Cita:
se que lo que va entre parentesis son como los datos que tendran las variables por defecto, es verdad ? o solo debo colocar las que estan dentro de los parametros del constructor ?

function __construct($var0=1, $var1=2){
$this->var0 = $var;
$this->var1 = $var1;
$this->varN = $varN;

}
Es correcto, entre paréntesis van las variables que se asignarán a los atributos de la clase para que tenga el funcionamiento mínimo.

Cita:
como le paso esa variable a la clase si declare en la clase que esa $variable es public ?
Lo primero, no te recomiendo que los atributos de clase sean públicos, es mejor que sean privados o protegidos. Para pasar la variable, una posibilidad, podría ser:
Código PHP:
$variable $_SESSION['nombre'];
$otra = new Clase();
$otra->setVariable($variable);
$otra->mostrar(); 
Donde la funcion setVariable sería:

Código PHP:
public fuction setVariable($var){
    
$this->variable=$var;

Te recomiendo este manual: http://www.desarrolloweb.com/manuales/58/

Un saludo.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #3 (permalink)  
Antiguo 21/01/2011, 03:01
Avatar de iwexcoder  
Fecha de Ingreso: mayo-2009
Ubicación: San Carlos de Bariloche
Mensajes: 404
Antigüedad: 15 años
Puntos: 16
Respuesta: Dudas con contructores

Haber...vamos por parte....

los constructores se utilizan para inicializar los atributos de los objetos de una clase.

Por lo general los atributos siempre son private, para que se puedan acceder solamente desde los métodos de una clase. Obviamente puedes tener excepciones, todo depende de como necesites que trabaje la clase, pero por lo general son private.

En el primero código, puedes hacer el código así

Código PHP:
Ver original
  1. class Nuevo {
  2.  
  3. private $var0;
  4. private $var1;
  5.  
  6. public function __contruct($a, $b) {
  7.           $this->var0=$a;
  8.           $this->var1=$b;
  9. }
  10.  
  11. $ejemplo = new Nuevo('1', '2');

Entonces al instaciar la clase Nuevo, puedes pasar los valores que quieras, que el contructor se encargara de asignarle un valor a los atributos definidos en la clase e inicializados en el contructor....

o sea... en este caso $var0=1 y $var1=2...si cambias los valores al instanciar la clase cambiaran los valores de los atributos...$ejemplo = new Nuevo('3, '5'); entonces $var0=3 y $var1=5...


Con el segundo codigo yo haria asi...

Código PHP:
Ver original
  1. nuevo ImpSession {
  2.    private $valorsession;
  3.    
  4.    public function __construct($valor) {
  5.  
  6.        $this->valorsession=$valor;
  7.  
  8.   }
  9.  
  10.   public function mostrar() {
  11.  
  12.       echo $this->valorsession;
  13.  
  14.  }
  15.  
  16. }
  17.  
  18.  
  19. $variable = $_SESSION['nombre'];
  20. $otra = new ImpSession($variable);
  21. $otra->mostrar();
__________________
iWexCoder.com - Programación - Desarrollo Movil - Programación Web www.iwexcoder.com
  #4 (permalink)  
Antiguo 21/01/2011, 07:36
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Dudas con contructores

Muchas gracias por su ayuda, espero algún día llegar a entender bien este lenguaje como ustedes.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 21/01/2011, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Frameworks y PHP orientado a objetos
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 19:54.