Forum und email

register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_function — Bestem en funktion til at blive udført ved afslutning af scriptet

Beskrivelse

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

Registrer funktionen med navnet, function , til at blive udført når scriptet er færdi.

register_shutdown_function() kan blive kaldt flere gange, og funktionerne vil blive udført i den rækkefølge som de er blevet registreret. Hvis du gør brug af exit() i af de registrerede afslutningsfunktioner, vil dette betyde at php helt stopper med at udføre mere. Det gælder også hvis der er flere afslutningsfunktioner registreret derefter.

I PHP 4.0.6 og tidligere under Apache, blev de registrerede afslutningsfunktioner udført efter at kaldet til webserveren var blevet udført. (inklusiv at sende alle output til browseren). Det betyder at det ikke er muligt at sende noget output til browseren fra de funktioner ved brug af echo() eller print() eller behandle nogen form for output buffer ved brug af ob_get_contents(). Siden PHP 4.1, blev afslutningsfunktionerne kaldt som en del af det rigtige kald til webserveren, så det er muligt at sende noget mere output til browseren. Der findes ikke nogen metoder på nuværende tidpunkt til at udføre data efter at kaldet til webserveren er blevet udført. Shutdown funktionen bliver kaldt efter at alle åbne "output buffers" er blevet lukket, derfor vil resultat fra den, f.eks ikke blive komprimeret, hvis zlib.output_compression er slået til.

Fra PHP 4, er det muligt at tilføje parameter til afslutningsfunktionerne ved at tilføje ekstra parameter til register_shutdown_function().

Note: Normalt vil udefinerede funktioner betyde en fatal error i PHP, men når function der bliver kaldt med register_shutdown_function() ikke er defineret, vil der kun fremkomme en E_WARNNIG fejl. Af interne grunde i PHP, vil fejlen vises ved: Unknown() at line #0.

Note: Afslutningsfunktionen bliver kaldt ved afslutningen af scriptet, hvilket betyder at såkaldte headers, altid er sendt på dette tidspunkt.

Note: Den mappe der bliver arbejdet i ved scriptet, kan blive ændret inde i afslutningsfunktionen under nogle webservere. F.eks. Apache.

Se også auto_append_file, exit() og afsnittet connection handling.