Задать вопрос
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"

Вопросик о деструкторе?

Как я понял, деструктор вызывается после завершения выполнения скрипта в классе. Так вот, у меня есть mvc шаблон. В index я инклужу файл с несколькими функциями, далее вызываю роутер и в этом роутере вызываю одну из подключенных инклудом функций.
Эти функции взаимосвязаны, то есть имеют общие глобальные переменные, которые задаю выше. Первая функция записывают определенное значение в одну из переменных, далее у меня идет вызов нескольких других классов (первый из роутера и там по цепочки) и скрипт может закончиться вызовом функции во view, а может в контроллере или model.
Если я вызову деструктор в роутере, он сработает после выполнения всего скрипта, включая view,model,controller или после передачи скрипта следующему классу?
  • Вопрос задан
  • 144 просмотра
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
ivankomolin
@ivankomolin
Как я понял, деструктор вызывается после завершения выполнения скрипта в классе

Откуда вы берете такие мысли?
В любой непонятной ситуации стоит обращаться к официальной документации:
https://www.php.net/manual/en/language.oop5.decon.php
Вот тут четко написано когда неявно вызывается деструктор:
The destructor method will be called as soon as there are no other references to a particular object, or in any order during the shutdown sequence.


Т.е. деструктор будет вызван тогда, когда все ссылки на объект будут уничтожены, либо произойдет завершение работы скрипта в котором этот объект был создан.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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