С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
13 / 13 / 2
Регистрация: 01.06.2013
Сообщений: 245
1

правильно ли я понял __destruct

21.01.2023, 21:26. Показов 462. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сразу коротко о сабже языком плебея:

деструктор - это завершающая команда класса?

Почему спрашиваю?

сделал внешний лог,для своего класса, где нужно писать каждый шаг выполняемой задачи.

в родителе (упрощенно выглядит так)
PHP
1
2
parent $condition
if $condition = true { class->writeLog}
Всё работает прекрасно, как задумывал. Проблема возникла тогда, когда мне вздумалось добавить затраченное на выполение лога время (вконец файла)

т.к. каждый раз при вызове class->writeLog метод writeLog отрабатывает от начал и до конца каждый раз. Т.е. будет писать в каждый шаг затраченное время.

Крутил-вертел..думал-гуглил... Пришёл к новой для меня функции __destruct

PHP
1
2
3
4
5
6
7
8
9
function __construct()
    {
       
    }
 
    function __destruct()
    {
        file_put_contents("$this->logPath.$this->logDate.log", PHP_EOL . 'Затраченное время - ' . number_format(microtime(true) - $this->executionTime, 4, '.', ' ') . PHP_EOL, FILE_APPEND | LOCK_EX);
    }
И...вроде всё работает как и хотелось. Собсна, задаю свой вопрос о целесообразности оного использования. Правильно ли я понял __destruct и использовал его для "пост-скриптум" / "последняя нота класса"
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
21.01.2023, 21:26
Ответы с готовыми решениями:

Правильно ли я понял значение этих строк(Описал правильно или нет)?
int min = list.Min(); //нахождение минимального числа в списке int max = list.Max(); ...

Правильно ли я понял?
In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97...

Правильно ли я понял условие ?
1) Нахожу обратную матрицу для очередной матрицы 2) Сравниваю полученную обратную матрицу с...

Правильно ли я понял разницу
Есть 2 функции: Плохая функция: var add_the_handlers = function(nodes) { var i; ...

Пояснить, правильно ли я понял
Здравсвуйте программисты! подскажите пожалуйста, правильно ли я понял этот код. mixail *robot; ...

1
Невнимательный
2769 / 1102 / 345
Регистрация: 08.02.2013
Сообщений: 6,291
Записей в блоге: 2
21.01.2023, 21:48 2
Цитата Сообщение от VeTal4ik Посмотреть сообщение
деструктор - это завершающая команда класса?
Это функция выполняющаяся перед уничтожением объекта этого класса.

Объекты уничтожаются или по завершению работы скрипта или при unset()
или,
Цитата Сообщение от crautcher Посмотреть сообщение
Пожалуй еще третим способом
как тут заметили в соседней теме про unset(), сразу после использования, если объект как-бы "анонимный"
Код
  php -r "class A{function __destruct(){ echo ""\ndestruct\n"";}} var_export(new A); echo 'B';"
A::__set_state(array(
))
destruct
B
Как-бы если объект будет в переменной, __destruct выполнится позже echo
0
21.01.2023, 21:48
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
21.01.2023, 21:48
Помогаю со студенческими работами здесь

Правильно ли я понял задание?
Работа с текстовыми и типизированными файлами. Само задание:"Файл должен содержать данные о...

Правильно ли я понял код?
Оставил пояснение в заметках def Longest(a): nspe, current = , ] for i in a: ...

Правильно ли понял задание?
приветствую! Есть задача: В файле(101.data) очень часто повторяются пары слов(например, "hey...

Destruct: основное назначение
разбираю такой пример из книги class Destruct { public int x; public Destruct(int i) { x =...

Указатели: правильно ли я понял вопрос?
Есть задание Я написал такой код: #include<iostream> using namespace std; #include<windows>...

Разбираю списки .Правильно ли понял ?
А если нет - укажите где ошибки у меня . и 1) Правильный ли код с точки зрения понимания ? 2)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru