What is Closure in Laravel? What is Closure in Laravel? php php

What is Closure in Laravel?


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