zoukankan      html  css  js  c++  java
  • guzzle 中间件原理

    <?php
    
    #闭包链式调用
    
    $handle = function ($method) {
        echo $method, PHP_EOL;
        return 'done';
    };
    
    $stack = [];
    
    array_push($stack, [function ($callable, $msg) use($handle) {
        return function () use ($callable, $msg) {
            echo '闭包 1', PHP_EOL;
            return $callable($msg);
        };
    }, 'one']);
    
    array_push($stack, [function ($callable, $msg) use($handle) {
        return function () use ($callable, $msg) {
            echo '闭包 2', PHP_EOL;
            return $callable($msg);
        };
    }, 'two']);
    
    $prev = $handle;
    foreach (array_reverse($stack) as $k => $fn) {
        $prev = $fn[0]($prev, $fn[1]);
    }
    
    echo $prev();
    
    echo '----------------', PHP_EOL;
    
    $prev = $handle;
    foreach ($stack as $k => $fn) {
        $prev = $fn[0]($prev, $fn[1]);
    }
    
    echo $prev();
  • 相关阅读:
    SQL的增删改查
    SQL语句的分类
    创建新DB和新用户&DBeaver连接
    jQuery css() 方法:设置或返回被选元素的一个或多个样式属性
    jQuery
    jQuery
    jQuery
    jQuery
    jQuery
    jQuery
  • 原文地址:https://www.cnblogs.com/a-flydog/p/14362132.html
Copyright © 2011-2022 走看看