I have a main.php
script which include another script named inc.php
. When I call exit
function from the inc.php
, the main.php
dies without executing the function registered as a shutdown function. Like:
main.php
<?php echo "An"; include 'inc.php'; function whenEnd(){ echo " this won't be echoed "; } register_shutdown_function ('whenEnd'); ?>
inc.php
<?php echo "Bn"; exit; ?>
running main.php
will return
A B
But I was expecting
A B this won't be echoed
what is wrong?
Advertisement
Answer
The function must be registered before exit.
<?php echo "An"; function final(){ echo " this won't be echoed "; } register_shutdown_function ('final'); include 'inc.php'; ?>