如何在新创建的对象上链接方法?

我想知道是否有一种方法可以在PHP中新创建的对象上链接方法?

就像是:

class Foo {

public function xyz() { ... return $this; }

}

$my_foo = new Foo()->xyz();

有人知道实现此目标的方法吗?

回答:

在PHP 5.4+中,解析器已被修改,因此您可以执行以下操作

(new Foo())->xyz();

用括号括起来的实例,并链接。

在PHP 5.4之前的版本中,当您使用

new Classname();

在语法上,您不能将方法调用链接到实例化。这是PHP 5.3语法的局限性。实例化对象后,就可以链接了。

我见过的一种解决该问题的方法是某种静态实例化方法。

class Foo

{

public function xyz()

{

echo "Called","\n";

return $this;

}

static public function instantiate()

{

return new self();

}

}

$a = Foo::instantiate()->xyz();

通过将对new的调用包装在静态方法中,可以使用方法调用实例化一个类,然后可以自由地将其链接起来。

以上是 如何在新创建的对象上链接方法? 的全部内容, 来源链接: utcz.com/qa/411990.html

回到顶部