1

可能重复:
PHP:如何在新创建的对象上链接方法?

我可以创建一个实例并通过以下方式调用它的方法:

$newObj = new ClassName();
$newObj -> someMethod();

但是有什么方法可以用更短的符号,匿名实例来做到这一点?我试过这个:

(new ClassName())->someMethod();

但它似乎没有按预期工作。

附加信息:我要调用的方法是公共的,但不是静态的。

4

3 回答 3

5

PHP 5.4 支持它。

如果您无法更新,您可以像这样解决方法:

function yourclass($param) {
   return new yourclass($param);
}

yourclass()->method();

不要忘记您的构造函数必须return $this;

于 2012-03-13T19:21:45.257 回答
3

从来没听说过。

但!- 你可以实现一个单例模式,然后调用:

ClassName::getInstance()->someMethod();

或者,简而言之;)

ClassName::gI()->someMethod();

如果 someMethod 没有引用 $this,你也可以简单地将它作为一个静态函数来调用,尽管它没有被定义为一个:

ClassName::someMethod();
于 2012-03-13T19:19:37.087 回答
0

如果该方法是静态的并且不依赖于任何类变量(也许您将它放在一个类中只是为了组织目的),您可以简单地静态调用它,就像 phil 使用 getInstance 演示的那样:

ClassName::someMethod()
于 2012-03-13T19:23:10.920 回答