Лучший способ уничтожить объект PHP?

Насколько я знаю (что очень мало), есть два способа:

$var = new object() 

Затем:

 // Method 1: Set to null $var = null; // Method 2: Unset unset($var); 

Другой лучший метод? Разбиваю ли я здесь волосы?

Ура!

Вы ищете unset() .

Но учтите, что вы не можете явно уничтожить объект.

Он останется там, однако, если вы отключите объект, и ваш скрипт подталкивает PHP к ограничениям памяти, объекты, которые не нужны, будут собирать мусор. Я бы пошел с unset() (в отличие от установки его на нуль), поскольку он, кажется, имеет лучшую производительность (не проверен, а задокументирован в одном из комментариев из официального руководства PHP).

Тем не менее, имейте в виду, что PHP всегда уничтожает объекты, как только страница будет обслуживаться. Поэтому это нужно делать только на очень длинных циклах и / или на тяжелых страницах.

Удобная статья, объясняющая несколько недоразумений по этому поводу:

Не вызывать деструктор явно

Это охватывает несколько неправильных представлений о том, как работает деструктор. Вызов его явно не приведет к уничтожению вашей переменной, в соответствии с документом PHP5:

PHP 5 представляет концепцию деструктора, аналогичную концепции других объектно-ориентированных языков, таких как C ++. Метод деструктора будет вызываться, как только нет других ссылок на конкретный объект или в любом порядке во время последовательности выключения.

В приведенной выше записи указано, что установка переменной в значение null может работать в некоторых случаях, если ничто иное не указывает на выделенную память.

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