ONK в этом топике точно описал объект класса. Заглянув в исходники Зенда, я в этом убедился воочию: во всех объектах есть ссылка на структуру класса. Если ссылка не NULL, значит это объект класса. Собственно в этом и отличие объектов от массивов во внутреннем представлении Зенд.
Не годится. Вызывов unset вовсе не означает уничтожения объекта. Соответственно, с некоторой вероятностью после вызова деструктора кто-то сможет (будет) и далее работать с данным объектом, что нелепо.
Верно. Объект не будет уничтожен, если имеются ссылки на его свойства за пределами объекта. Если эти ссылки были созданы в пределах объекта, то ф-ция с ролью деструктора должна уничтожит эти "внешние ссылки". Если эти ссылки были созданы за пределами объекта, то после его уничтожения, объект будет освобожден только после уничтожения этих ссылок.
ЗЫ. На форуме частенько наблюдал пердложение такой оперции:
На самом деле $this - это ссылка на реальный объект, следовательно операция unset($this) уничтожит эту ссылку, но не сам объект.