OOP删除类实例

时间:2016-10-08 18:47:44

标签: php oop

我很擅长使用PHP OOP并尝试以下方法:

$this->array = new array();  
$this->array[1] = new myClass($UniqueName);

在myClass中,我有一个循环,每隔5秒向控制台发送一条消息,显示唯一的名称。当应用程序运行时,将创建myClass的新实例(1,2,3,4等等),旧的实例变得无关紧要,应该被删除。

当我取消设置数组对象时,该类的循环会不断向控制台发送消息。

unset($this->array[1])

我担心的是,班级并没有真正浪费资源。至于循环,我可以在运行未设置之前手动取消它,但它似乎从视图中隐藏了我的问题。

希望这是有道理的,有人可以帮助我理解这是否可行。

1 个答案:

答案 0 :(得分:0)

解决我自己的问题。这是我正在测试的精简版本。问题在于myClass中的计时器。看来因为计时器仍在运行,所以类不会破坏。我只是一厢情愿地认为它也会终止。删除计时器可以进行破坏。

class myClass extends DefaultConfig {

  public $fileName;
  public $logLevel;
  public $loop;
  public $config;
  public $db;


  function __construct ($loop, $db, $config) {
    $this->fileName = 'myClassObject';
    $this->logLevel = 3;
    $this->loop = $loop;
    $this->config = new Config($config);
    $this->HB();
  }


  function __destruct() {
       print "Destroying " . $this->fileName . "\n";
  }
  public function HB(){
    $this->loop->addPeriodicTimer(1, function($timer){
        $this->Logging(3, $this->fileName, $this->logLevel, "Server Message");
    });
  }
}