Home > Article > Backend Development > New features of PHP: usage of finally keyword
The content of this article is about the new features of PHP: the usage of finally keyword. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Recently, the RFC I submitted about finally: Supports finally keyword has been submitted to the PHP trunk. Today I will introduce to you the background of this new feature and how to use it.
About this feature The requirement was first put forward in 2005: FR #32100, but no one has ever implemented it. Someone put it forward again last month, and I just tried to implement it because someone told me, It has not been implemented. One reason is because it is difficult to implement (perhaps for a coder, it is natural to like to challenge difficult problems, haha)..
For current PHP, if we need to do it when it happens, we can't currently do it. When handling exceptions, do some work, and then write code similar to this:
function anonymous () { try { function_may_throw_exception(); } catch (Exception e) { clearup(); throw e; } clearup(); }
We see that we need to explicitly write clearup(). Then finally can Solve this problem.
Finally is not original to PHP, it is available in other languages such as C#, Javascript, Java, etc. PHP's finally is similar to other languages.
For finally, one is easier to understand The confusing part is return in finally, because finally must guarantee that it will be executed, so if we return in try, finally will also be called, so what if finally also returns? What is the value of the final return? In PHP, if you return in finally, the original return value will be overwritten.
Recommended related articles:
include() function and What is the difference between require() function?
What is the difference between php7 and php5? Comparison between php5 and php7
The above is the detailed content of New features of PHP: usage of finally keyword. For more information, please follow other related articles on the PHP Chinese website!