我想做的事情是这样的:
$method_result = new Obj()->method();
而不是必须这样做:
$obj = new Obj();
$method_result = $obj->method();
在我的特定情况下,结果实际上对我来说并不重要。但是,有没有办法做到这一点呢?
发布于 2011-07-13 08:43:48
您可以通过定义一个标识函数来实现更普遍的功能:
function identity($x) {
return $x;
}
identity(new Obj)->method();
这样你就不需要为每个类定义一个函数。
发布于 2009-09-09 22:40:50
这样如何:
$obj = new Obj(); $method_result = $obj->method(); // ?
:P
发布于 2009-09-09 22:38:29
不,这不可能。
您需要将实例赋给一个变量,然后才能调用它的任何方法。
如果你真的不想这样做,你可以像ropstah建议的那样使用一个工厂:
class ObjFactory{
public static function newObj(){
return new Obj();
}
}
ObjFactory::newObj()->method();
https://stackoverflow.com/questions/1402505
复制相似问题