İşlevlerle İlgili İşlemler
register_shutdown_function — Betiğin işi bittiğinde çalıştırılacak işlevi tanımlar
void register_shutdown_function ( callback $işlev [, mixed $değiştirge [, mixed $... ]] )
Betiğin işi bittiğinde çalıştırılacak kapatma işlevini işlev olarak tanımlar.
register_shutdown_function() her gerekişinde bir kere olmak üzere defalarca çağrılabilir. Tanımlanan bir kapatma işlevinin içinde exit() çağrısı yapılırsa betik orada sonlanır ve başka kapatma işlevi çağrılmaz.
PHP 4'ten beri register_shutdown_function() işlevi üzerinden kapatma işlevine ek değiştirgeler aktarılabilmektedir.
Tanımlanacak kapatma işlevinin ismi.
Kapatma işlevleri isteğin parçası olarak çağrılmakta dolayısıyla bunlardan çıktı göndermek mümkün olmaktadır. Kapatma işlevlerinin içinde çıktı tamponlama ile veri işlemenin şimdilik bir yolu yoktur.
Kapatma işlevleri tüm açık çıktı tamponları kapandıktan sonra çağrıldığından örneğin, zlib.output_compression etkin olsa bile çıktı sıkıştırılmaz.
register_shutdown_function() işlevi üzerinden kapatma işlevine ek değiştirgeler aktarılabilmektedir.
4.1.0 Apache altında, tanımlı kapatma işlevleri istek tamamlandıktan sonra (çıktı tamponlarının gönderilmesi dahil) çağrılır. Dolayısıyla bir daha echo veya print kullanarak tarayıcıya bir şey gönderilemez veya ob_get_contents() kullanarak herhangi bir çıktı tamponunun içeriği alınamaz. Ancak, başlıklar daima gönderilir.
4.0.0 Kapatma işlevine değiştirgelerini aktarmak mümkün oldu.
Örnek 1 - register_shutdown_function() örneği
// bu bizim kapatma işlevimiz.
// Burada betik sonlanmadan önce yapılacak
// son işlemleri gerçekleştiriyoruz.
echo 'Betik işini gerektiği gibi yaptı', PHP_EOL;
Normal olarak tanımsız işlevler PHP'de ölümcül hatalara sebep olurlar, fakat register_shutdown_function() ile tanımlanmamış bir işlev çağrıldığında sadece E_WARNING seviyesinde bir hata çıktılanır. Ayrıca, PHP'ye özgü sebeplerle bu hata 0. satırda Unknown olarak gösterilir.
Apache gibi bazı HTTP sunucularında çalışma dizini kapatma işlevi içinde değiştirilebilmektedir.
exit() - Bir ileti çıktılayıp çalışmakta olan betiği sonlandırır
Bağlantı yönetimi bölümü