Экземпляр класса может самоликвидироваться?

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

$file = new FileClass();

$file->copy('/some/new/path/');
$file->delete();

// ... at this point $file would be seen as unset.
10
задан Charles 24 December 2012 в 21:26
поделиться

2 ответа

Нет, невозможно уничтожить класс изнутри, который является нелогичным. unset ($ this) не будет работать (по крайней мере, не так, как ожидалось).

Почему бы вам не использовать

unset($file);

и не определить функцию __ destruct , в которой вы выполняете задачи, которые обычно выполняете в delete ?

14
ответ дан 3 December 2019 в 20:39
поделиться

Это единственное решение, которое я могу придумать:

function delete($var_name) {
   unset($GLOBALS[$var_name]);
}

Тогда вы делаете:

$file->delete('file');

В любом случае, класс не может совершить самоубийство (без помощи извне).

0
ответ дан 3 December 2019 в 20:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: