News Feed
Jobs Feed
Sections




News Archive
Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Travis Swicegood's Blog:
Pushing the boundries of PHP
November 01, 2007 @ 16:48:00

While working with some code of his, Travis Swicegood noticed something odd when he tried to work with Exceptions in a __destruct call:

You must be doing something right when you can send PHP into a tail spin. That or the code you're trying to do is just evil. Turns out __destruct() and __call() don't play well together in 5.2.4 if, and only if, you create an instance of an object without assigning it.

The official (and verified) bug over on the bugs.php.net site gets into more detail on it including a code block that illustrates the point as simply as possible.

In the example I blogged about, __destruct() actually wants to catch any exceptions so it can create meaningful output based on the Exceptions that were generated. In that case, __destruct() would have returned peacefully. [...] At any rate, my take on that would be that would still be that if __destruct() is finished and an exception is still present, then there's an error. Otherwise, how would you handle things such as PDOExceptions thrown during DB clean-up?
0 comments voice your opinion now!
boundries destruct exception call bug boundries destruct exception call bug


blog comments powered by Disqus

Similar Posts

DevShed: Using the Xdebug Extension's xdebug_call_function() Function

Travis Swicegood's Blog: Pushing the boundries of PHP

Marcelo Gornstein's Blog: Advanced telephony applications with PHP and PAGI using call flow nodes

Brian Moon's Blog: PHP 5.3 and mysqlnd - Unexpected results

Lukas Smith's Blog: RC testing and the README.UPDATE


Community Events











Don't see your event here?
Let us know!


database install hack package unittest symfony2 language opinion release performance series hhvm podcast application composer facebook component framework introduction security

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework