函数基础知识
callback
迭代地作用到 array
数组中的每一个单元中,从而将数组简化为单一的值。<?php
interface Middleware
{
public static function handle(Closure $next);
}
class SessionMiddleware implements Middleware
{
public static function handle(Closure $next)
{
echo ‘session 配置成功‘.PHP_EOL;
return $next();
}
}
class CookieMiddleware implements Middleware
{
public static function handle(Closure $next)
{
echo ‘cookie 配置成功‘.PHP_EOL;
return $next();
}
}
class ConfigMiddleWare implements Middleware
{
public static function handle(Closure $next)
{
echo ‘config 配置成功‘.PHP_EOL;
return $next();
}
}
//方式一
function run(){
ConfigMiddleWare::handle(function(){
SessionMiddleware::handle(function (){
$handle = function (){
echo ‘程序进行中‘;
};
CookieMiddleware::handle($handle);
});
});
}
run();
//方式二
$handle = function (){
echo ‘程序进行中‘;
};
$middlewareGroup = [
‘SessionMiddleware‘,
‘CookieMiddleware‘,
‘ConfigMiddleWare‘
];
$callback = array_reduce($middlewareGroup,function ($carry,$item){
return function () use ($carry,$item){
return $item::handle($carry);
};
},$handle);
call_user_func($callback);
原文:https://www.cnblogs.com/ywjcqq/p/14859984.html