Created
July 8, 2020 14:22
-
-
Save kirilkirkov/ef7a40558737aeb6409aac89ab24b0ce to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A Closure is an anonymous function. Closures are often used as callback methods and can be used as a parameter in a function. | |
If you take the following example: | |
function handle(Closure $closure) { | |
$closure(); | |
} | |
handle(function(){ | |
echo 'Hello!'; | |
}); | |
We start by adding a Closure parameter the handle function. This will type hint us that the handle function takes a Closure. | |
We then call the handle function and pass a function as the first parameter. | |
By using $closure(); in the handle function we tell PHP to execute the given Closure which will then echo 'Hello!' | |
It is also possible to pass parameters into a Closure. We can do so by changing the Closure call in the handle function to pass on a parameter. In this example i'll just pass a string but this can be any variable. | |
The handle function now looks like | |
function handle(Closure $closure) { | |
$closure('Hello World!'); | |
} | |
We now also need to modify the Closure itself to take the parameter. We do so by simply adding a parameter to the function. And then we pass that variable to the echo. | |
The function now looks like | |
handle(function($value){ | |
echo $value; | |
}); | |
Which will echo Hello World! | |
For more information you can check out these links: | |
http://php.net/manual/en/functions.anonymous.php | |
http://php.net/manual/en/class.closure.php |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment