Вопрос собнос не сложный. Но как его организовать не знаю. Уже второй день в гугле что то не нахожу нужного ответа. Собсно допустим : PHP: class unit { function foo1() {...} function foo2() {...} function destroy() {...} } $cl = new unit(); $cl->foo1; $cl->foo1; $cl->destroy(); Вот... Вопрос прост, что писать в destroy() что бы получить эффект unset($cl)? Это вообще реально? Просто как дочерние классы удалять, на это постоянно натыкаюсь.... А про главный класс не слова. =\
Можно и unset(). Но я решил поинтересоваться... Авось есть "быстрое" решение. Просто не нужно следить за всем, достаточно одну функцию дописать, и вызывать её на любом этапе "если что". А не делать проверки и потом маятся с кодом. В конечно итоге получили б "или полный класс" или "ничего". В моменте безопасности тоже считаю пригодилось бы...
Кстати заметил интересный момент. Если к примеру... : PHP: class unit { function fooTop() {...} function foo1() {@newOne(); ...} function foo2() {...} function destroy() {...} } $cl = new unit(); $cl->fooTop; // something $cl->foo1; // none $cl->foo2; // none $cl->destroy(); Т.е. если спецом вызвать неопределённую (отбалды) функцию, котора заведомо не существуется, проход по классу останавливает. И ничего не возвращается. Не понятен этот момент совершенно... =\ Кто нить может прокоментировать этот момент?
Ты шутишь? unset и есть одна функция, которую даже писать не надо. Инстансы классов ты чем собрался убивать? $c = new Obj(); $d = new Obj(); Но одного я не пойму - зачем? Ты тянешь что-то жутко большое и долгоиграющее в память? Тебя начинает мучить недержание (утечки)? У тебя скрипт не работает часами. Он взлетел и умер. Можно вообще ничего не чистить.
Где останавливает? Кто останавливает? Брр... Вы о чем вообще? Наличие ошибок в коде всегда останавливает его выполнение, когда выполнение доходит до места ошибки.
Ну это в принцепи то чего я и ожидал. Такого ответа. Просто хотел удостоверится... PS: Чего то я упустил этот момент "Он взлетел и умер. Можно вообще ничего не чистить."....
В PHP воюют за то, чтобы он (скрипт) как можно быстрее и без ошибок отработал. За 0.05с-1с времени работы скрипта надо делать что-то совсем жуткое, чтобы память пришлось чистить вручную. Для демонов - отдельный вопрос, там уже можно и нужно думать об утечках. Но обычно люди которые решают писать демон на PHP понимают (ну или хотя бы имеют представление), что они делают и как бороться с последствиями.
А вот это моя вторая ошибка. Теперь всё ясно. СПС. Я в php не очень давно. Не правильно понял "@" ...
Это подавление ошибок. В смысле не выведение сообщения об ошибке на экран. Но сама ошибка остается. Да, стоит еще помнить, что ряд ошибок обнаруживаются еще на этапе парсинга кода. А остальные только в процессе выполнения. И если код во время работы никогда не заходит в ветвление с ошибкой, то такую ошибку можно не замечать месяцами.
Kreker А я 4й раз переписываю приложение. Как в том анекдоте блин. Что ни начну делать, все время пулемет получается.
Что-то я не понял, надо "убивать" объект или класс? Если первое... $c = new Obj(); /* Code... */ $c = NULL; @unset($c);