php 5.3
有没有办法做到这一点(例如在java中可行)
(new MyClass())->myMethod();
Run Code Online (Sandbox Code Playgroud)
我正在接受: Parse error: syntax error, unexpected T_OBJECT_OPERATOR in D.. on line 7
我真的需要在下一个PHP版本中实现RFC!
http://wiki.php.net/rfc/instance-method-call
有没有办法我们可以订阅它,以便它可以得到更多的关注?
不,这是不可能的。有一个 RFC 可以解决这个问题
http://wiki.php.net/rfc/instance-method-call
但没有人知道它什么时候会进入用户空间。
Jacob提到了静态方法。还有其他或多或少有用的方法来实现相同的目的
function instanciate($className, $arg1 = null) {
$args = func_get_args();
array_shift($args);
$c = new ReflectionClass($className);
return $c->newInstanceArgs($c);
}
instanciate('Classname', 1, 2, 3)->doSomething();
Run Code Online (Sandbox Code Playgroud)
但是,我更喜欢临时变量(就像问题中一样)。
更新:我可以发誓那里有一个过去问题中临时变量的例子。然而,我的意思是这个
$x = new Class;
$x->method();
Run Code Online (Sandbox Code Playgroud)
其中$x是临时变量。