13 / 13 / 2
Регистрация: 01.06.2013
Сообщений: 245
1

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

21.01.2023, 21:26. Показов 465. Ответов 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
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
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
Невнимательный
2783 / 1114 / 347
Регистрация: 08.02.2013
Сообщений: 6,367
Записей в блоге: 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
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
Копирование (маппинг) объектов в JavaScript
bytestream 21.01.2025
В современной разработке программного обеспечения копирование объектов представляет собой фундаментальную операцию, которая требует особого внимания и понимания. Маппинг объектов в JavaScript – это. . .
Как работать с Apache Kafka в C# .NET
bytestream 21.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки больших объемов информации в реальном времени. Эта система,. . .
Как использовать RabbitMQ в C# .NET
bytestream 21.01.2025
RabbitMQ представляет собой мощный брокер сообщений, который эффективно решает эту задачу, обеспечивая надежную передачу данных между множеством приложений. Этот инструмент реализует протокол AMQP. . .
Как объединить последние коммиты в Git
bytestream 21.01.2025
В мире разработки программного обеспечения система контроля версий Git стала незаменимым инструментом для управления исходным кодом. Одной из наиболее полезных, но порой сложных для освоения функций. . .
Как запушить новую локальную ветку (branch) в удалённый репозиторий Git и отслеживать её
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемым инструментом для эффективного управления кодом и организации командной работы. Одной из ключевых. . .
Как создать директорию и все родительские директории, указанные в пути, с помощью Python
bytestream 21.01.2025
Python предоставляет мощные инструменты для работы с файловой системой через встроенные модули os и pathlib, которые значительно упрощают процесс манипуляции директориями. Эти модули содержат. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru