register_shutdown_function

(PHP 4, PHP 5, PHP 7)

register_shutdown_functionBetiğin işi bittiğinde çalıştırılacak işlevi tanımlar

Açıklama

register_shutdown_function ( callback $işlev [, mixed $değiştirge [, mixed $... ]] ) : void

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.

Değiştirgeler

işlev

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.

değiştirge

register_shutdown_function() işlevi üzerinden kapatma işlevine ek değiştirgeler aktarılabilmektedir.

...

Dönen Değerler

Hiçbir değer dönmez.

Sürüm Bilgisi

Sürüm: Açıklama
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.

Örnekler

Örnek 1 - register_shutdown_function() örneği

<?php
function kapat()
{
  
// 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;
}

register_shutdown_function('kapat');
?>

Notlar

Bilginize:

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.

Bilginize:

Apache gibi bazı HTTP sunucularında çalışma dizini kapatma işlevi içinde değiştirilebilmektedir.

Ayrıca Bakınız