Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
速记新实例->;PHP中的方法语法?_Php_Oop_Shorthand - Fatal编程技术网

速记新实例->;PHP中的方法语法?

速记新实例->;PHP中的方法语法?,php,oop,shorthand,Php,Oop,Shorthand,可能重复: 我可以通过以下方式创建实例并调用其方法: $newObj = new ClassName(); $newObj -> someMethod(); 但是有没有什么方法可以用一个更短的符号,一个匿名的实例?我试过这个: (new ClassName())->someMethod(); 但它似乎并不像预期的那样起作用 附加信息:我要调用的方法是公共的,但不是静态的。我不知道 但是您可以实现单例模式,然后调用: ClassName::getInstance()->so

可能重复:

我可以通过以下方式创建实例并调用其方法:

$newObj = new ClassName();
$newObj -> someMethod();
但是有没有什么方法可以用一个更短的符号,一个匿名的实例?我试过这个:

(new ClassName())->someMethod();
但它似乎并不像预期的那样起作用

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

我不知道

但是您可以实现单例模式,然后调用:

ClassName::getInstance()->someMethod();
或者,简而言之;)

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

ClassName::someMethod();
据我所知没有

但是您可以实现单例模式,然后调用:

ClassName::getInstance()->someMethod();
或者,简而言之;)

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

ClassName::someMethod();
PHP5.4支持它

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

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

yourclass()->method();
不要忘记构造函数必须
返回$this

PHP5.4支持它

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

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

yourclass()->method();

不要忘记构造函数必须
返回$this

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

ClassName::someMethod()

如果该方法是静态的,并且不依赖于任何类变量(可能您只是出于组织目的将其放入类中),那么您可以简单地静态调用它,正如phil使用getInstance演示的那样:

ClassName::someMethod()

据我所知,你只能有一个单身汉。恐怕这是一个常规对象,有些是匿名的,但有些将存储在容器、数组甚至其他对象中。除非我可以让getInstance返回对象的新实例。。我来试试。它工作得很好!我的构造函数有可选的参数,所以当它创建一个新实例并返回它时,我必须在getInstance()类中包含这些参数,但它确实有效。谢谢我的链条现在看起来干净多了。我会尽快接受的。据我所知,你只能有一个单身汉。恐怕这是一个常规对象,有些是匿名的,但有些将存储在容器、数组甚至其他对象中。除非我可以让getInstance返回对象的新实例。。我来试试。它工作得很好!我的构造函数有可选的参数,所以当它创建一个新实例并返回它时,我必须在getInstance()类中包含这些参数,但它确实有效。谢谢我的链条现在看起来干净多了。一旦它允许,我将立即接受。检查此项:检查此项: