PHP中的简写新实例 - >方法语法?

时间:2012-03-13 19:15:27

标签: php oop shorthand

  

可能重复:
  PHP: How to chain method on a newly created object?

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

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

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

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

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

其他信息:我想要调用的方法是公开的,但不是静态的。

3 个答案:

答案 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()