PHP7 will continue to borrow some of the beloved JavaScript features and will support Immediately Invoked Function Expressions (IIFEs):
<?php
echo (function() {
return 42;
})();
Output for php7@20140901 - 20141101: 42
Since we can already return functions from inside other functions, Currying Partial Application is also possible in combination with the IIFE implementation:
<?php
$foo = (function() {
return function($a) {
return $a + 42;
};
})();
echo $foo(10);
Output for php7@20140901 - 20141101: 52
Note that when accessing an outer variable from within a function, one – unlike in JavaScript which has closures – needs to use the use
keyword to make that variable accessible:
<?php
$foo = (function($a) {
return function($b) use ($a) {
return $a + $b;
};
})(42);
echo $foo(10);
Output for php7@20140901 - 20141101: 52
/me is excited!
PHP7 IIFE Demo →
PHP7 Currying Demo →
PHP7 Currying Redux Demo →