Что такое закрытие в Laravel?
Здравствуйте, я работаю как laravel Beginner, и я увидел одну функцию в middlewere, и функция ниже:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check())
{
return redirect('/home');
}
return $next($request);
}
Что такое Закрытие и что оно делает?
1 ответ
Закрытие является анонимной функцией. Замыкания часто используются как методы обратного вызова и могут использоваться в качестве параметра в функции.
Если вы берете следующий пример:
function handle(Closure $closure) {
$closure();
}
handle(function(){
echo 'Hello!';
});
Начнем с добавления Closure
параметр handle
функция. Это напечатает намек на то, что handle
функция занимает Closure
,
Затем мы называем handle
функция и передать функцию в качестве первого параметра.
Используя $closure();
в handle
функция мы говорим PHP, чтобы выполнить данный Closure
который будет тогда echo 'Hello!'
Также возможно передать параметры в Closure
, Мы можем сделать это, изменив Closure
позвонить в handle
функция для передачи параметра. В этом примере я просто передам строку, но это может быть любая переменная.
Функция handle теперь выглядит как
function handle(Closure $closure) {
$closure('Hello World!');
}
Теперь нам также нужно изменить Closure
Сам взять параметр. Мы делаем это, просто добавляя параметр в функцию. И затем мы передаем эту переменную echo
,
Функция теперь выглядит как
handle(function($value){
echo $value;
});
Который будет эхом Hello World!
Для получения дополнительной информации вы можете проверить эти ссылки: