Удаление объекта PHP; также unset () и __destruct - PullRequest
0 голосов
/ 11 января 2019

Правильны ли они:

  1. Любой объект PHP всегда удаляется после запуска (как и его код).

  2. unset($objectName) просто стимулирует то, что произойдет в любом случае. Удаление будет немного быстрее (из оперативной памяти), но в конце концов это одно и то же.

  3. __destruct похоже на событие, которое запускается до удаления объекта, поэтому мы можем иметь его или нет. Любой код может быть запущен в этом.

Имеет ли unset() какое-либо отношение к __destruct? Как бы просто пойти на это (как единственный шаг), а затем удалить?

1 Ответ

0 голосов
/ 11 января 2019
  1. Переменные / объекты / ресурсы автоматически удаляются / освобождаются, когда скрипт, в котором они находятся, завершает выполнение. Не обязательно (или не рекомендуется) звонить unset() по всем вопросам.

  2. Если вы хотите, чтобы что-то было удалено / освобождено до конца сценария, вы можете явно unset() сделать это, и это произойдет немедленно, а не в конце сценария. Это может освободить память, но обычно используется просто для того, чтобы исключить возможность повторного обращения к объекту.

  3. Correct.

Имеет ли unset () какое-либо отношение к __destruct.

Да. Непосредственно перед уничтожением объекта (либо явным unset(), либо достижением конца скрипта) метод __destruct() вызывается, если он присутствует.

...