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

Que es un contructor?no consigo entenderlo bien..

Estas en el tema de Que es un contructor?no consigo entenderlo bien.. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. ola muy wenas, Pues e aki la kebradura de kabeza k me estoy pegando kon la operacion especial constructor..sé k tiene k tener el mismo ...
  #1 (permalink)  
Antiguo 20/08/2006, 16:52
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Que es un contructor?no consigo entenderlo bien..

ola muy wenas,

Pues e aki la kebradura de kabeza k me estoy pegando kon la operacion especial constructor..sé k tiene k tener el mismo nombre de la clase,pk lo demas no lo entiendo,bueno mas k no entender,mas bien esk no la komprendo..entiendo el kodigo pero no komprendo lo k ace..nose si me expliko..necesito una explikacion personal sin terminos de programacion.

Alguien me exa una mano?? o dos
  #2 (permalink)  
Antiguo 20/08/2006, 17:05
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 18 años, 11 meses
Puntos: 0
"El constructor es llamado cuando se crea el objeto." Osease, cuando haces un:

Código PHP:
$algo = new clase (); 
Es decir, automaticamente, lo que tengas en el constructor (una funcion con el mismo nombre que la clase), en caso de haberla declarado, lo que contenga se ejecuta.

Ejemplo

Código PHP:
class miEjemplo () {

function 
miEjemplo () {
     echo 
"Soy un echo que está dentro del constructor";
     }


Cuando hagas;

Código PHP:
$algo = new miEjemplo (); 
Imprimirá sin que le digas nada:

Soy un echo que está dentro del constructor

Espero haberte ayudado y no haberme equivocado yo, ya que soy primerizo en esto de la POO tambien.

Saludos!
__________________
Saludos!
  #3 (permalink)  
Antiguo 20/08/2006, 18:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Hola, pues para aclarar mas tu duda, un constructor, es eso, una funcion que se encarga de "construir" la clase.

Supon que tienes una clase que se encarga de hacer inserciones en una base de datos, en el constructor puedes "construir" la conexion a la base de datos, y funciones especificas, checar que haya variables correctas, etc.

Si no tienes nada que construir en tu clase no es nescesario que lo definas, aunque siempre es bueno hacerlo aunque sea vacio.

ej:
Código PHP:
class test {
     function 
test() {}
}
$test = new test(); 
y si trabajas en PHP5, el constructor ahora se llama __construct() para hacer mas facil la programacion (por decir cuando heredas puedes llamar a parent::__construct() para hablarle al constructor padre)

El ejemplo de arriba se "traduciria" asi para PHP5:
Código PHP:
class test {
     public function 
__construct() {

     }
}
$test = new test(); 
  #4 (permalink)  
Antiguo 20/08/2006, 21:22
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Wenas, es decir k en el constructor se pone el codigo que ejecutara en toda la clase,no? o solo lo ejecuta una vez y ya esta?joder esk no me entra ni a tiros..
  #5 (permalink)  
Antiguo 21/08/2006, 04:39
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 18 años, 11 meses
Puntos: 0
No te agobies tio, de verdad. Mira, esta semana he estado dandole a la lectura sobre POO, pero uf, una cosa es leer y otra probarlo.

No me quedaba claro lo de la herencia, no sabia como aplicarlo cuando lo leia, pero fue todo cuestion de probar y probar y ahora lo tengo claro, lo mismo con constructores y tal.

Un saludo y animo, haz pruebas y más pruebas.

Animo!
__________________
Saludos!
  #6 (permalink)  
Antiguo 21/08/2006, 08:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
El constructor solo se ejecuta como lo dice su nombre, cuando se construye la clase, nadamas, y esta su parte opuesta, el destructor (solo PHP5) que se encarga de destruir la clase.
  #7 (permalink)  
Antiguo 21/08/2006, 11:42
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
kreo k ya lo entendi,el constructor es una operacion especial k se ejecuta sin k llames ala "operacion especial",digamos k pk se incluye en la clase y kon tan solo llamar ala clase ya se ejecuta pk ya va "dentro" de ella,es decir no ace falta poner:
Código:
class nose()
      {
             function nose()
               {
                  echo "consructor";
               }
      }

$algo= new nose();
$algo->nose();
Esta vez acerte?? Creo k ayer estaba ciego..xD

Última edición por limboings; 21/08/2006 a las 11:47
  #8 (permalink)  
Antiguo 21/08/2006, 11:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
de hecho no puedes explicitamente llamar al constructor, ese se auto llama cuando creas la clase.

Es por decir tienes una clase que sea de bases de datos, en el constructor creas que se conecte a la base y en el destructor que se desconecte, porque estos dos siempre son llamados de forma automatica.

Asi tu solo te preocupas de "trabajar" ej:
Código PHP:
// Automaticamente creamos y conectamos
$db = new DB();

// Insertamos un dato
$db->inserta"un dato" );

// Cuando la clase se destruye se cierra la conexion a la bd 
  #9 (permalink)  
Antiguo 21/08/2006, 12:11
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
si,es lo k yo decia..GRACIAS a todos por la ayuda a est ceporro xDD un saludoo
  #10 (permalink)  
Antiguo 22/08/2006, 17:10
 
Fecha de Ingreso: agosto-2006
Mensajes: 2
Antigüedad: 17 años, 8 meses
Puntos: 0
Lo que explica GatorV es correcto, un constructor es un método de la clase que se ejecuta automáticamente cuando se crea esta, se la usa para asignar valores de "inicialización" a las propiedades de la clase, esto hace que una cuando clase se instancie quede tal y como nosotros la queremos.
  #11 (permalink)  
Antiguo 23/08/2006, 09:04
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
ya lo entendi kompletamente pero gracias igualmente! un saludoo
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 03:59.