2011-01-19 3 views
6

Je n'arrive pas à trouver une bonne réponse là-dessus. Si j'exécute la mise en mémoire tampon de sortie et qu'un die() est déclenché, cela lance-t-il également un ob_end_flush()?Est-ce que die() fait un ob_end_flush()?

+2

Je vois des tampons en attente lorsque le script se termine (mourir ou ne pas mourir, CLI ou HTTP). Je ne sais pas si c'est documenté et/ou configurable; Je suis d'accord qu'il serait intéressant de trouver une référence explicite dans le manuel. –

Répondre

12

Oui c'est le cas. Chaque fois que le script se termine avec élégance, les tampons seront vidés. Les seules terminaisons non-gracieuses sont si elle est en défaut de segmentation ou si elle est détruite (signal 9 SIG_KILL). Le seul endroit où die() tue durement le processus est si vous l'appelez à l'intérieur d'un register_shutdown_function (mais les tampons sont vidés avant que la fonction d'arrêt ne soit appelée, donc il n'y a pas de problème ici). Voir Connection Handling pour plus d'informations ...