2009/2/3 Wickland, Leif <lwickl...@rightnow.com>:
> I would expect that if I turn on output buffering, echo something, throw an 
> exception, and catch the exception, nothing will have been actually output..  
> That doesn't seem to be the case.  Throwing an exception seems to defeat 
> output buffering.
>
> In the following code, I would not expect to see the <h1>, but I do.
>
>
>
> <?
> try {
>    ob_start();
>    echo '<h1>You should not see this!</h1>';
>    throw new Exception('<h2>This should be the first output.</h2>');
>    exit( 'Contents: ' . ob_get_clean());
> }
> catch (Exception $ex) {
>    exit('<h2>Exception:</h2>' . $ex->getMessage());
> }
>
>
> I'm exercising that code on PHP 5.2.4 and 5.2.8.
>
> Does anybody know why throwing an exception seems to override ob_start(), 
> flushing the buffered output?

It doesn't, but the end of the script performs an implicit flush.

-Stuart

-- 
http://stut.net/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to