【问题标题】:How to terminate last function in chaining method php如何终止链接方法php中的最后一个函数
【发布时间】:2022-01-25 06:57:49
【问题描述】:

我遇到了一些问题,我不知道如何解决。

这是问题的示例

class DancingClass {
    private static $associate = [];
    private static $first;

    public static function first($param) {
        self::$first = $param;

        return new self;
    }

    public function second($param) {
        self::$associate["second"] = $param;

        return new self;
    }

    public function finish() {
        var_dump(self::$associate["second"]);
        $sec = self::$associate["second"] | "";

        $all = self::$first . " ditemani oleh " . $sec;

        return $all;
    }
}

然后我用链式方法调用

$callingClass = new DancingClass;

echo $callingClass::first("lucky")->second("adhitya")->finish(); // Return "lucky ditemani oleh adhitya"
echo "<br/>";

echo $callingClass::first("fatur")->finish(); // Return "fatur ditemani oleh"

但我得到了这样的结果

【问题讨论】:

  • 您能否描述一下您提出这个问题的目的。你需要用这种方法具体做什么,为什么你需要使用static成员来遵循这个?

标签: php oop method-chaining fluent-interface


【解决方案1】:

当您调用 second() 方法时,它会在您稍后调用的同一个类实例上设置变量。

也许你应该试试:

echo ((new DancingClass())->first(...)->second(...)->finish();
echo ((new DancingClass())->first(...)->finish()

【讨论】:

  • 它正在运行,但仍然得到相同的结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
相关资源
最近更新 更多