La función register_shutdown_function()
en PHP se utiliza para registrar una función que se ejecutará automáticamente cuando el script termine. Esto incluye tanto cuando el script finaliza de manera normal como cuando se produce un error fatal. Es útil para ejecutar código de limpieza o registrar errores, entre otras cosas.
register_shutdown_function()
en PHP?
register_shutdown_function()
permite definir una función o método que se ejecutará justo antes de que el script termine, independientemente de si el final del script fue causado por un error, una llamada a exit()
o simplemente por el final normal de la ejecución. Esta función es particularmente útil para realizar tareas como cerrar conexiones, limpiar recursos o registrar fallos.
register_shutdown_function()
en PHP
<?php
function shutdownFunction() {
echo "El script ha terminado.\n";
}
register_shutdown_function('shutdownFunction');
echo "Este es el final del script.\n";
?>
Salida:
Este es el final del script.
El script ha terminado.
Puedes usar register_shutdown_function()
para registrar errores fatales que normalmente no podrías capturar con otras funciones de manejo de errores.
<?php
function shutdownFunction() {
$error = error_get_last(); // Obtiene el último error si existe
if ($error !== null) {
echo "Error capturado: " . $error['message'] . "\n";
}
}
register_shutdown_function('shutdownFunction');
// Forzar un error fatal
echo 10 / 0;
?>
Salida:
Error capturado: Division by zero
Puedes registrar más de una función con register_shutdown_function()
, y se ejecutarán en el orden en que se registraron.
<?php
function shutdownFunction1() {
echo "Función de apagado 1\n";
}
function shutdownFunction2() {
echo "Función de apagado 2\n";
}
register_shutdown_function('shutdownFunction1');
register_shutdown_function('shutdownFunction2');
echo "El script está a punto de terminar.\n";
?>
Salida:
El script está a punto de terminar.
Función de apagado 1
Función de apagado 2
Para más detalles, consulta la documentación oficial de PHP: Documentación de register_shutdown_function()
Jorge García
Fullstack developer