Closures, Anonymous Function & High Order Functions in PHP
Closures are introduced in PHP 5.3. Functions which are created without any name (Anonymous Function) and Closures functions are used to represent these kind of functions.
A closure is good when we want a local function that’s only used for some small specific purposes.
Basically, Closure are the inner functions that have access to outer variables and used as a callback function to anonymous functions.
High Order function are related to functional programming. Basically these kind of functions has at least one of these features.
- Takes one or more functions as arguments.
- Return a function as its result.
Here are some inbuilt High Order Functions in PHP which will be more helpful to write clean and fast codes.
- array_map
- array_filter
- array_reduce
- array_walk
array_map : Applies the callback to the elements of the given arrays
array_filter : Filters elements of an array using a callback function
array_reduce: Iteratively reduce the array to a single value using a callback function
array_walk : Apply a user supplied function to every member of an array
PS; One more thing. lets try to use external variable inside high order function here : array_map
$add = 2;$lists = [1,2,3,4,5];array_map(function($value){
return $value + $add;
}, $lists);
We will get this error: Undefined variable: add
To solve this, we need to supply external variable to function using `use` keyboard.