La función register_shutdown_function en PHP permite registrar una función de callback que se ejecutará automáticamente al final de la ejecución del script. Esto es útil para realizar tareas de limpieza, cerrar conexiones o manejar errores críticos que ocurran justo antes de que el script termine, incluyendo aquellos provocados por errores fatales.
register_shutdown_function y cómo funciona?
register_shutdown_function se usa para programar una función que se ejecutará cuando el script esté a punto de finalizar, sin importar si finalizó correctamente o debido a un error fatal. La función puede recibir argumentos opcionales y puede usarse para capturar errores inesperados o liberar recursos.
register_shutdown_function
register_shutdown_function(callable $callback, mixed ...$args): void
register_shutdown_function
En este ejemplo, registramos una función que se ejecuta automáticamente al finalizar el script.
function onShutdown() {
echo "El script ha terminado.";
}
register_shutdown_function('onShutdown');
Salida: Al terminar el script, se mostrará:
El script ha terminado.
Este ejemplo muestra cómo register_shutdown_function puede usarse para capturar y manejar errores fatales.
function handleShutdown() {
$error = error_get_last();
if ($error && $error['type'] === E_ERROR) {
echo "Se produjo un error fatal: " . $error['message'];
}
}
register_shutdown_function('handleShutdown');
// Código que provoca un error fatal
nonExistentFunction();
Salida:
Se produjo un error fatal: Call to undefined function nonExistentFunction()
Aquí se registra una función anónima con argumentos. Esto puede ser útil cuando necesitamos pasar valores específicos a la función de cierre.
register_shutdown_function(function($name) {
echo "El script de $name ha finalizado.";
}, "MiScript");
Salida:
El script de MiScript ha finalizado.
Para más detalles sobre register_shutdown_function, consulta la documentación oficial de PHP.
Jorge García
Fullstack developer