PHP finally gets finally
wiki.php.net
wiki.php.net
In case you are wondering why this link goes to the bottom of the page, the important bit is:
2012/08/13 Xinchen Hui: Close voting, RFC win the voting
The RFC is a bit dry and does explain some use cases, however, GoogleGuy (who is a really nice and helpful guy in the ##php channel) provided a wonderful explanation[1] that goes into more detail.
Accepting the RFC is just the first step, let's hope we can see this in the next version.
[1] - http://sheriframadan.com/2012/08/finally-keyword-in-php/
Also, looks like generators may come to vote soon since NikiC has asked on mailing list about it. http://wiki.php.net/rfc/generators
But it's great to see half-complete features becoming fully complete, even if a few years late.
https://bugs.php.net/bug.php?id=32100
By the way, if you scroll down in that page there are two workaround solutions to get the finally behavior on any php5 version.
http://php.net/manual/en/function.set-error-handler.php
along with a function that throws exceptions, e.g.:
function exception_on_error($errnum,$errmsg) { throw new ErrorException($errmsg,$errnum); }
You can't catch all errors (sensibly including compile errors and unhandled exception errors), but it can get you pretty far.
Not that there aren't other reasons not to use PHP, but this one is manageable.
The first use-case for finally involved locking database tables, and then unlocking them in the finally clause. It would be pretty bad, if you could not guarantee the unlock would happen. So one would hope that has been properly taken care of :-)