2013-06-08 3 views
-2

Это довольно короткий вопрос. Является ли __destruct вызываемым всякий раз, когда я повторяю тот же объект снова? (в PHP)Вызывается __destruct(), когда тот же объект имеет другой экземпляр?

+0

Объект не может иметь экземпляр, только классы могут иметь экземпляры. Экземпляры определяются как реализованная вариация плана класса. – shredding

+3

было бы занято 10 секунд, чтобы попробовать ... –

ответ

1

Довольно короткий и очевидный ответ: нет.
Только когда экземпляр объекта получает уничтожен.

Конечно:

$foo = new Bar; 
$foo = new Bar; 

Здесь экземпляр присваивается $fooявляется разрушается, потому что $foo является перезапись; независимо от того, что он перезаписывается.

+0

ISTM вы должны сказать «* может быть * уничтожен * позже *». Это сбор мусора, вызывающий вызов '__destruct()'. В этом случае метод вызывается дважды, один раз для каждого объекта. Первый раз он вызывается для первого объекта, когда последняя ссылка на первый объект удаляется для второго назначения. Второй раз он вызван для второго объекта непосредственно перед завершением программы, так как переменная '$ foo' удаляется и ссылка, которую она удерживает на второй объект, удаляется. – PointedEars

Смежные вопросы