可能重复:
PHP:如何在新创建的对象上链接方法?
我可以创建一个实例并通过以下方式调用它的方法:
$newObj = new ClassName();
$newObj -> someMethod();
但是有什么方法可以用更短的符号,匿名实例来做到这一点?我试过这个:
(new ClassName())->someMethod();
但它似乎没有按预期工作。
附加信息:我要调用的方法是公共的,但不是静态的。
可能重复:
PHP:如何在新创建的对象上链接方法?
我可以创建一个实例并通过以下方式调用它的方法:
$newObj = new ClassName();
$newObj -> someMethod();
但是有什么方法可以用更短的符号,匿名实例来做到这一点?我试过这个:
(new ClassName())->someMethod();
但它似乎没有按预期工作。
附加信息:我要调用的方法是公共的,但不是静态的。
PHP 5.4 支持它。
如果您无法更新,您可以像这样解决方法:
function yourclass($param) {
return new yourclass($param);
}
yourclass()->method();
不要忘记您的构造函数必须return $this;
从来没听说过。
但!- 你可以实现一个单例模式,然后调用:
ClassName::getInstance()->someMethod();
或者,简而言之;)
ClassName::gI()->someMethod();
如果 someMethod 没有引用 $this,你也可以简单地将它作为一个静态函数来调用,尽管它没有被定义为一个:
ClassName::someMethod();
如果该方法是静态的并且不依赖于任何类变量(也许您将它放在一个类中只是为了组织目的),您可以简单地静态调用它,就像 phil 使用 getInstance 演示的那样:
ClassName::someMethod()