标签搜索
侧边栏壁纸
  • 累计撰写 4 篇文章
  • 累计收到 1 条评论

PHP 简单实现链式调用

admin
2021-05-18 / 1 评论 / 7 阅读 / 正在检测是否收录...

有时候看到别人写代码可以像这样链式调用就会觉得很高端。

$my->if(request()->isGet())
   ->then(function () use($p){
          return $p;
   })

然后自己就也想 高端一把,记录下简单的实现方式

<?php
namespace App\Http\Lib;
class chainCallClass{
    private $do = false;
    private $result ;
    function if($bool){
        $this->do = $bool;
        return clone $this;
    }
    function then(callable $fun){
        if($this->do){
            $this->result = $fun();
            $this->do = !$this->do;
        }
        return clone $this;
    }
    function getResult(){
        return $this->result;
    }
}

调用方式

$p = "Hello Word";
$my = new chainCallClass;
return $my->if(false)
    ->then(function () use($p){
        return $p;
    })
    ->if(true)
    ->then(function () use($p){
        $p = 'Hi Word';
        return $p;
    })
    ->getResult();

这样,一个简单的;只有 ifthen的链式调用就实现了

0

评论 (1)

取消
  1. 头像
    Typecho
    Linux · Google Chrome

    欢迎加入 Typecho 大家族

    回复