register_shutdown_function

funkcja

Rejestruje funkcję wywoływaną po zakończeniu skryptu — niezależnie od tego, czy skrypt zakończył się normalnie, czy przez błąd.

register_shutdown_function(callable $callback, mixed ...$args): void

register_shutdown_function rejestruje funkcję, która zostanie uruchomiona zawsze na końcu skryptu — po exit, die, a nawet po błędzie krytycznym (E_ERROR), którego set_error_handler nie może przechwycić. Możesz zarejestrować wiele funkcji; będą wywoływane w kolejności rejestracji.

Typowe zastosowania to zwalnianie zasobów, zapisywanie logów, wysyłanie powiadomień o awarii. Wewnątrz handlera możesz sprawdzić error_get_last, żeby dowiedzieć się, czy skrypt zakończył się błędem.

<?php
declare(strict_types=1);

register_shutdown_function(function (): void {
    $blad = error_get_last();
    if ($blad !== null) {
        echo 'Awaria: ' . $blad['message'] . PHP_EOL;
    } else {
        echo 'Sprzątanie po zakończeniu skryptu.' . PHP_EOL;
    }
});

echo 'Skrypt działa...' . PHP_EOL;
// Skrypt działa...
// Sprzątanie po zakończeniu skryptu.