我可以通过以下方式创建一个实例并调用它的方法:
$newObj = new ClassName();
$newObj -> someMethod();
但有什么方法可以用更短的符号来表达,一个匿名的实例?我试过这个:
(new ClassName())->someMethod();
但它似乎没有按预期工作。
其他信息:我想要调用的方法是公开的,但不是静态的。
答案 0 :(得分:3)
PHP 5.4支持它。
如果您无法更新,可以解决此问题:
function yourclass($param) {
return new yourclass($param);
}
yourclass()->method();
不要忘记您的构造函数必须return $this;
答案 1 :(得分:2)
不是我所知道的。
但是! - 您可以实现Singleton Pattern然后调用:
ClassName::getInstance()->someMethod();
或者,缩短它;)
ClassName::gI()->someMethod();
如果someMethod没有引用$ this,你也可以简单地将它称为静态函数,虽然它没有被定义为一个:
ClassName::someMethod();
答案 2 :(得分:0)
如果方法是静态的并且不依赖于任何类变量(也许你只是为了组织目的而把它放在一个类中),你可以简单地称它为phil用getInstance演示:
ClassName::someMethod()