Jest to właściwie całkiem prosta funkcja. Więc masz skrypt PHP:
<?php
echo "Here is my little script";
function endScript(){
echo "My little Script has finished";
}
register_shutdown_function('endScript');
?>
zasadzie to, co się dzieje, jest twój skrypt działa, a kiedy skończy, ponieważ dodaliśmy ten wiersz register_shutdown_function('endScript');
będzie wywoływać endScript funkcyjny i wreszcie wyjście My little script has finished
.
Oto trochę więcej od documentation:
Rejestruje zwrotnego być wykonywane po zakończeniu wykonywania skryptu lub EXIT() jest called.Multiple wzywa do register_shutdown_function() może być wykonane, a każdy będzie nazwany w tej samej kolejności, w jakiej zostały zarejestrowane. Jeśli wywołasz exit() w ramach jednej zarejestrowanej funkcji wyłączania, przetwarzanie zostanie całkowicie zatrzymane i żadne inne zarejestrowane funkcje wyłączania nie będą wywoływane.
* Aktualizacja
Wielki stosowanie dla niego jest, kiedy często korzystać z funkcji o nazwie exit()
w php.
Na przykład:
<?php
function endScript(){
echo "My little Script has finished";
}
register_shutdown_function('endScript');
$result = some_intricate_function()
if($result == 0){
exit();
}
$result = some_other_intricate_function()
if($result == 0){
exit();
}
/* and this keeps reoccurring */
?>
teraz zauważyć, że nawet jeśli nazywają wyjścia wiele razy nie trzeba wywołać funkcję endScript
przed zamknięciem za każdym razem. Zarejestrowałeś go na samym początku, a teraz wiesz, że jeśli kiedykolwiek wyjdziesz lub skrypt się skończy, twoja funkcja zostanie wywołana.
Oczywiście moja funkcja wyłączania jest całkiem bezużyteczna; ale może się przydać, jeśli potrzebujesz oczyścić rzeczy (np. Zamknij otwarte uchwyty plików, zapisz niektóre trwałe dane, itp.)
Rozumiem to teraz! Dziękuję za wyjaśnienie! Gdybym mógł. Chciałbym dać +1 –
@DarylGill Zarejestruj się jako zaakceptowana odpowiedź (znacznik wyboru) dla przyszłych użytkowników, którzy odwiedzają ten wątek. –
@FlorinStingaciu +1, nie spodziewałem się, że będzie to wymagało tak wiele wyjaśnień :) – emartel