Comunidad de diseño web y desarrollo en internet online

Problema con __destruct()

Citar            
MensajeEscrito el 07 Jul 2010 03:31 pm
Saludos!!! Es primera vez que entro en este foro, aunque ya antes me lo habían recomendado bastante...

Tengo un problema con el "__destruct()" de una clase. Verán, he hecho una clase con varias subclases directas (o sea, que son subclases de la principal, no hay ninguna que sea subclase de una subclase de la principal), y le he definido la función __destruct() según el manual de PHP. El problema es que cuando uso un objeto de cualquiera de las clases (principal o subclases), al terminar, lo "destruyo", pero si hago un var_dump(), me sigue mostrando que el objeto tiene contenido. También reviso la memoria usada por el script, y es el mismo antes y después del __destruct(). Por qué pasa esto? No debería quedar anulado el objeto?

No es urgente, pero igual agradecería mucho una ayudita con esto, gracias :)

Por RicardoSP55

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Jul 2010 01:56 am
A ver estas confundiendo el concepto, el destructor sirve para realizar una o muchas tareas adicionales antes de destruir el objeto. En ese punto el objeto todavía existe pero al termino de su ejecución no existirá.

Normalmente las tareas adicionales son "ajenas" al objeto, relacionada con recursos externos usados por el objeto. No malinterpretes recurso con memoria, pues automáticamente se liberará al terminar el script o al destruir el objeto tú explícitamente.

Prueba esto:

Código PHP :

<?php

class Foo
{
   
   private $bar;
   
   public function __construct()
   {
      echo "He creado un objeto " . __CLASS__  . "\n";
      $this->bar = 1;
   }
   
   public function getBar()
   {
      return $this->bar;
   }
   
   public function __destruct()
   {
      echo "Estoy destruyendo un objeto " . __CLASS__ . "\n";
      echo $this->getBar(). "\n";
   }
}

$obj = new Foo();

echo $obj->getBar() . "\n";
unset($obj);
echo $obj->getBar() . "\n";


?>


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.