Volver a la página principal
lunes 4 noviembre 2024
14

Cómo usar register_shutdown_function en PHP

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.

¿Qué es 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.

Sintaxis de register_shutdown_function

register_shutdown_function(callable $callback, mixed ...$args): void
  • $callback: Función que se ejecutará al finalizar el script. Puede ser una función anónima, el nombre de una función, o un método de una clase.
  • $args (opcional): Argumentos que se pasarán a la función registrada.

Ejemplos de uso de register_shutdown_function

Ejemplo 1: Registrar una función simple

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.

Ejemplo 2: Capturar errores fatales

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()

Ejemplo 3: Usar una función anónima con argumentos

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.

Referencia

Para más detalles sobre register_shutdown_function, consulta la documentación oficial de PHP.

Etiquetas:
php
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer