美文网首页
如何写一个chain

如何写一个chain

作者: sorry510 | 来源:发表于2020-04-09 22:24 被阅读0次
    class Unit
    {
    
        public static function test($arg)
        {
            return 1;
        }
    
        // 返回一个链式调用类
        public static function chain($arg)
        {
            return (new class(self::class, $arg)
            {
                private $arg;
                private $originClass;
    
                public function __construct($originClass, $arg)
                {
                    $this->arg= $arg;
                    $this->originClass = $originClass;
                }
    
                public function __call($name, $args)
                {
                    $args[] = $this->arg; // 追加str
                    $this->arg= call_user_func_array([$this->originClass, $name], $args);
                    if (is_string($this->arg)) {
                        return $this;
                    } else {
                        return $this->arg;
                    }
                }
    
                public function value()
                {
                    return $this->arg;
                }
    
                public function __toString()
                {
                    return $this->arg;
                }
            });
        }
    }
    

    相关文章

      网友评论

          本文标题:如何写一个chain

          本文链接:https://www.haomeiwen.com/subject/lictuhtx.html