Для экземпляра объекта PHP действительно ли возможно уничтожить/сбросить себя? Скажите, что у меня был класс, который представил файл, и затем я впоследствии удаляю тот файл с помощью класса. Я могу так или иначе сбросить экземпляр из одного из его собственных методов?
$file = new FileClass();
$file->copy('/some/new/path/');
$file->delete();
// ... at this point $file would be seen as unset.
Нет, невозможно уничтожить класс изнутри, который является нелогичным. unset ($ this)
не будет работать (по крайней мере, не так, как ожидалось).
Почему бы вам не использовать
unset($file);
и не определить функцию __ destruct
, в которой вы выполняете задачи, которые обычно выполняете в delete
?
Это единственное решение, которое я могу придумать:
function delete($var_name) {
unset($GLOBALS[$var_name]);
}
Тогда вы делаете:
$file->delete('file');
В любом случае, класс не может совершить самоубийство (без помощи извне).