[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как уничтожить объект?
Commander Keen
Вот например когда я объявляю объект определённого класса, срабатывает конструктор. А что нужно сделать чтобы сработал деструктор? Вот например:

$object = new foo; # сработал __constructor


Теперь если я сделаю что-то вроде:

$object = __;
$object = null;
unset($object);


То где из трёх вариантов сработает деструктор и память высвободится? Если не то пишу, скажите как нужно. Пасиба :)



Спустя 15 минут, 5 секунд (10.01.2012 - 18:24) Xes написал(а):
Применяйте деструктор, когда объект удаляется из памяти. Вам может понадобиться сохранить объект в базе данных, закрыть открытые файлы, которые взаимодействовали с объектом. Чтобы создать деструктор, добавьте в класс метод __destruct(). Он вызовется как раз перед удалением объекта автоматически. Вот простой пример:
1	class MyClass {
2 public function __destruct() {
3 echo "I'm about to disappear - bye bye!";
4 // (очистить память)
5 }
6 }
7
8
$myObject = new MyClass();

9 unset( $myObject ); // отобразит "I'm about to disappear - bye bye!"

Спустя 17 минут, 31 секунда (10.01.2012 - 18:41) Commander Keen написал(а):
Я знаю что такое деструктор ) Вот за 9 line спасибо, это то, что я и спрашивал. То есть unset($object). Ясно, спасибо. Просто в языках с которыми я работал деструктор нужно вызывать в наглую, когда нужно. Например .free в Delphi или delete в CPP, иначе память сама тебе скажет "I'm about to disappear - bye bye!" wink.gif Спасибо за ответ.

Спустя 5 минут, 4 секунды (10.01.2012 - 18:46) Nikitian написал(а):
Просто в php деструктор не удаляет объект, а используется как триггер на удаление.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.