Как соотносятся заголовки HTTP и каталог с деструкторами в php?

Я знаю, что делает деструктор в PHP ООП, но я хотел бы знать одну вещь: какова связь заголовков HTTP и каталога с деструктором в php?

Кто-нибудь может сказать, что это значит?

Деструкторам, вызываемым во время выключения скрипта, уже отправлены заголовки HTTP. Рабочий каталог на этапе выключения сценария может отличаться для некоторых SAPI (например, Apache).

Это задокументировано в Destructor в ссылке ниже.

http://php.net/manual/en/language.oop5.decon.php

1

Решение

Это пытается объяснить, когда деструктор вызывается headers_sent () вернет true, и это дает нам понять, что рабочий каталог может отличаться при вызове деструктора (он может не совпадать с тем, что был во время конструктора или когда вызывались другие методы) (обычно рабочий каталог — это место, где живет скрипт ). Обходной путь — использовать абсолютный путь или использовать chdir ();

Поэтому вы должны быть осторожны при выполнении действий, подобных следующим:

class Files{

function __destruct() {
unlink($this->logfile); // it may be wrong if it is relative path
}
}

Возвращаясь к первой части, когда деструкторы вызываются, заголовки уже отправлены. Вы не сможете делать то, что зависит от «заголовка отправлено». Например, перенаправить или инициализировать сеанс.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector