美文网首页
如何写一个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