Did you know PHP 5.3 now supports anonymous functions? Let's look at some code.
This is the old way how you used to do it:
<?php
//the array we're working with
$arr = array(1,2,3,4,5);
//declare a function for use as callback
function callback($i){
echo $i;
}
//use the callback
array_walk($arr, 'callback'); //outputs 12345
?>
Now, this is the new way:
<?php
$arr = array(1,2,3,4,5);
//use anonymous callback method
array_walk($arr, function($i){echo $i;}); //outputs 12345
?>
And here's another interesting thing you can now do with PHP:
<?php
$arr = array(5,4,3,2,1);
//create a variable which will be a reference to a new function later
$fn = null;
//$fn's function is declared within the arguments of another function
array_walk($arr, $fn = function($i){echo $i;}); //outputs 54321
//calls the new function in $fn
$fn(68); //outputs 68
?>
Did you know you could use external variables inside of closures? You need the use keyword and pass the variables into it separated by commas like so:
$basePath = "/usr/home/";
$getPathFor = function($name) use ($basePath) {return "$basePath$name";}
echo $getPathFor("bob"); // /usr/home/bob
Nice.
No comments:
Post a Comment