Можно ли убить этот PHP-скрипт? - PullRequest
2 голосов
/ 22 ноября 2010
<?php

class Test {

    public function foo() {
        echo "Foo!";
        die();
    }

    public function __destruct() {
        header('location: http://google.com');
    }

}

$Test = new Test;
$Test->foo();

У меня есть класс, который просто присваивает различные переменные Session, а затем отправляет пользователю запрос на выполнение предыдущего сценария. Я подумал, что было бы проще иметь один редирект на деструкции вместо 10 строк, говорящих одно и то же.

Позже я обнаружил ошибку в моем скрипте и обнаружил, что она почти невозможна. Для дальнейшего использования, есть ли способ убить этот скрипт или он всегда будет перенаправлен?

Чтобы уточнить, скрипт всегда перенаправляет даже с помощью die (), выход из функции foo.

1 Ответ

1 голос
/ 22 ноября 2010

$Test объект разрушается при отключении браузера: он не будет перенаправлен только потому, что браузер не получит заголовок! Однако, если вы явно unset($Test);, это будет

UPD : Я ошибаюсь: скрипт вызовет все деструкторы с подключенным браузером. Однако я бы не стал полагаться на это

...