PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

Jeremy Cook's Blog: Recursive Closures in PHP 5.3

Note: This article was originally published at PHPDeveloper on 14 August 2010.
PHPDeveloper

In this recent post from Jeremy Cook he take a look at an interesting use of closures in PHP - using them recursively to strip slashes off a string.

One thing all of my projects have in them is code to remove the quotes added so I can handle appropriate escaping myself. This [example from the PHP manual] works perfectly but it does end up creating a function in the global namespace which is only called once. A perfect job for a closure.

He includes an example of how to do it with a normal, globally-defined function and how to handle it with a closure (that calls itself via an array_map) - a closure contained inside of itself with the string variable passed in by reference. Then, when it's done stripping out slashes, the closure is dropped and nothing new is added to the global namespace.