我很擅长使用PHP OOP并尝试以下方法:
$this->array = new array();
$this->array[1] = new myClass($UniqueName);
在myClass中,我有一个循环,每隔5秒向控制台发送一条消息,显示唯一的名称。当应用程序运行时,将创建myClass的新实例(1,2,3,4等等),旧的实例变得无关紧要,应该被删除。
当我取消设置数组对象时,该类的循环会不断向控制台发送消息。
unset($this->array[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");
});
}
}