У меня есть класс, который хранит массив и сохраняет его содержимое в событии __destruct()
.__destruct()
вызывается автоматически, когда нет другой ссылки на объект как «целое» или относительно текущего класса или сценария, который его использует?Пример:
class Store
{
public function set($key, $value) { $this->data[$key] = $value; }
public function __destruct() { fwrite($this->handle, serialize($this->data)); }
}
class Consumer
{
protected $store;
public function __construct() { $this->store = new Store(); }
public function __destruct() { $this->store->set('key', 'a'); }
}
// In external script...
$store = new Store();
$store->set('key', 'b');
new Consumer();
Когда в этом примере вызывается __destruct()
?Дважды?Один?Какое значение ключ ?