PHP: как уничтожить / сбросить все классы в приложении - PullRequest
2 голосов
/ 11 июня 2011

Вопрос в том, имеет ли смысл освобождать память и уничтожать / сбрасывать объекты? exit() убивает приложение и больше ничего не нужно делать?

Ответы [ 2 ]

8 голосов
/ 11 июня 2011

В руководстве говорится:

Завершает выполнение скрипта.Функции выключения и деструкторы объектов всегда будут выполняться, даже если вызывается exit ().

Так что достаточно просто вызвать exit ();

Однако, если вы используете PHP для запуска веб-приложения, вызывать exit не нужно, так как php будет показыватьпосле того, как запрос сделан и ответ возвращен.

0 голосов
/ 11 июня 2011

Имеет смысл использовать unset, хотя в некоторых случаях, когда вы имеете дело с большим количеством объектов, которые остаются в памяти во время выполнения вашего скрипта. Если вы не выполните очистку после таких методов, вы можете установить ограничение на объем памяти PHP, установленное в php.ini, что приведет к прекращению работы вашего сценария.

Такие вещи, как чтение в файлах с использованием file_get_contents, могут также вызывать это, если вы позволите переменной зависать, содержащей содержимое файла.

Хотя это случается довольно редко, но лучшая практика - кодировать будущее и убирать за собой.

Но вернемся к исходному вопросу: нет, PHP очищает все, когда скрипт завершается.

...