array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.register-shutdown-function.php', 1 => 'register_shutdown_function', ), 'up' => array ( 0 => 'ref.funchand.php', 1 => 'İşlevlerle İlgili İşlevler', ), 'prev' => array ( 0 => 'function.get-defined-functions.php', 1 => 'get_defined_functions', ), 'next' => array ( 0 => 'function.register-tick-function.php', 1 => 'register_tick_function', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/funchand/functions/register-shutdown-function.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
register_shutdown_function — Betiğin işi bittiğinde çalıştırılacak işlevi tanımlar
Betiğin işi bittiğinde çalıştırılacak kapanma işlevini
işlev
olarak tanımlar.
register_shutdown_function() her gerekişinde bir kere olmak üzere defalarca çağrılabilir. Tanımlanan bir kapanma işlevinin içinde exit() çağrısı yapılırsa betik orada sonlanır ve başka kapanma işlevi çağrılmaz.
Kapanma işlevleri, kuyruğun sonuna başka kapanma işlevleri eklemek için register_shutdown_function() işlevini kendileri de çağırabilir.
işlev
Tanımlanacak kapatma işlevinin ismi.
Kapanma işlevleri isteğin parçası olarak çağrılmakta dolayısıyla bunlardan çıktı göndermek ve çıktı tamponlarına erişmek mümkün olmaktadır.
bağımsız_değişkenler
register_shutdown_function() işlevi üzerinden kapanma işlevine ek bağımsız değişkenler aktarılabilmektedir.
Hiçbir değer dönmez.
Örnek 1 - register_shutdown_function() örneği
<?php
function kapat()
{
// bu bizim kapanma 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');
?>
Bilginize:
Apache gibi bazı HTTP sunucularında çalışma dizini kapanma işlevi içinde değiştirilebilmektedir.
Bilginize:
Süreç bir SIGTERM veya SIGKILL ile öldürülmüşse kapanma işlevleri çalıştırılmaz. Bir SIGKILL'i yakalayamazsınız ama temiz bir sonlandırma için exit() işlevini kullanan SIGTERM sinyalini yakalayan bir işleyici kurmak için pcntl_signal() kullanabilirsiniz.
Bilginize:
Kapanma işlevleri, max_execution_time süresinde çalışan işlevlerden değildir. Yani, bir işlem çok uzun süre çalıştığı için sonlandırılsa bile kapanma işlevleri yine de çağrılacaktır. Ayrıca, kapanma işlevi çalışırken
max_execution_time
süresi bitse bile, kapanma işlevi çalışmasını sürdürür.