Funciones de Manejo de Funciones
PHP Manual

register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_functionRegistrar una función para que sea ejecutada al cierre

Descripción

void register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

Registra una llamada de retorno dada por callback para ser ejecutada después de que finalice la ejecución del scrip o se llame a exit().

Se pueden hacer múltiples llamadas a register_shutdown_function(), y cada una será llamada en el mismo orden en el que fueron registradas. Si se llama a exit() dentro de una función de cierre registrada, el procesamiento se detendrá completamente y no se llamarán a otras funciones de cierre registradas.

Parámetros

callback

La llamada de retorno de cierre a registrar.

Las llamadas de retorno de cierre se ejecutan como parte de una petición, por lo que es posible enviar salidas desde ellas y acceder a los buffers de salida.

parameter

Es posible pasar parámetros a la función de cierre pasando parámetros adicionales.

...

Valores devueltos

No devuelve ningún valor.

Errores/Excepciones

Se generará un error de nivel E_WARNING si no es posible llamar a la llamada de retorno.

Historial de cambios

Versión Descripción
4.1.0 Las funciones de cierre ahora son llamadas como parte de la petición. En versiones anterior bajo Apache, las funciones de cierre registradas eran llamadas después de que la petición hubiera sido completada (incluyendi en envío de cualquier buffer de salida), por lo que no era posible enviar una salida al navegador usando echo o print, o recuperar el contenido de ningún buffer de salida usando ob_get_contents(). Las cabeceras también eran enviadas siempre.

Ejemplos

Ejemplo #1 Ejemplo de register_shutdown_function()

<?php
function cierre()
{
    
// Esta es nuestra función de cierre,
    // aquí podemos hacer las últimas operaciones
    // antes de que el script sea completado.

    
echo 'Script ejecutado con éxito'PHP_EOL;
}

register_shutdown_function('cierre');
?>

Notas

Nota:

El directorio de trabajo del script se puede cambiar dentro de la función de cierre bajo algunos servidores web, p.ej. Apache.

Nota:

Las funciones de cierre no serán ejecutadas si el proceso es terminado por señales SIGTERM o SIGKILL. Pese a que no es posible interceptar una señal SIGKILL, es posible utilizar pcntl_signal() para registrar un manejador para SIGTERM que utilice exit() para terminar limpiamente.

Ver también


Funciones de Manejo de Funciones
PHP Manual