Уничтожение переменных

Уничтожение переменных

Здравствуйте!

Смешно называется тема, не так ли? :) Ну другого не придумал.

Сразу код:
PHP:
<?
class someclass
{
      function someclass($someval) // Конструктор
         {
               // Присвоение и регистрация свойств обьекта класса
               $this->my_value = $someval; 
               $this->my_cos = cos($someval);
               $this->my_sin = sin($someval);
         }
      // Другие методы
      function someclass_destruct()
         {
               // Разустановка переменных
               unset($this->my_value,$this->my_cos,$this->my_sin);
         }
}
...
?>
Скажите, можно ли разустановить в деструкторе все свойства обьекта класса без использования unset или с unset сразу всех переменных, т.е. как можно "собрать" все свойства воедино и сделать их разустановку?

Пробовал делать unset($this) - но это же полный идиотизм. :)

Заранее спасибо.
 

Андрейка

Senior pomidor developer
чтобы хацкеры, спаммеры и кукисы из памяти секретные данные не сперли, да?
 

hermit_refined

Отшельник
Curly-fingers
PHP:
$obj = new someclass($someval);
...
unset($obj);
или
PHP:
function bu_bu_bu($someval)
{
     $obj = new someclass($someval);
     ...
     return true;
}
Объект уничтожается (и память, отведённая под него, освобождается - но скриптом/процессом удерживается) при потере последней ссылки на него.
 
Андрейка
Наконец-то "удалил" ВСЕ переменные, но тогда удаляется и сам обьект. Но всё-равно спасибо.

Хотел давно узнать, может есть ф-ция которая собирает все переменные в один массив, напр $allvar[название переменной]=конечное значение переменной?
Тогда тоже можно будет использовать unset()

Извините должен идти. Отвечу завтра с утра.
 

Андрейка

Senior pomidor developer
Curly-fingers
есть такая функция, собирающия все переменные в один массив

ЗЫ.сразу не глянул - а ты идеальный класс под php4 чтоли пишешь? гы
 

hermit_refined

Отшельник
Curly-fingers
Вы не должны этого хотеть (хотя функция действительно такая есть). Просто создайте объект заново. Тогда и unset() ни к чему:
PHP:
$obj = new someclass($someVal);
$obj->doSomething();
$obj = new someclass($otherVal);
В Прототипе, правда, используется инициализация, но это вам в ближайшее время не пригодится.

И вообще, учтите - аккуратная работа с памятью нужна только для очень долго исполняющихся скриптов, вы зря так много об этом думаете.
 
zerkms
Спасибо! :)

hermit_refined
Никогда с классами не работал, всегда функции да функции и вот решил попробовать классы... :)
 
Сверху