这是我想要做什么:在PHP 5.2为什么实例化一个类并在同一行上调用一个方法是无效的?
$app = (new Factory())->GetApp();
不过,我得到一个“意外T_OBJECT_OPERATOR”的错误。
为了避免这种情况,我必须做的:
$Factory = new Factory();
$app = $Factory->GetApp();
为什么是这个必要吗?如果它有任何区别,我正在运行PHP 5.2。
这是我想要做什么:在PHP 5.2为什么实例化一个类并在同一行上调用一个方法是无效的?
$app = (new Factory())->GetApp();
不过,我得到一个“意外T_OBJECT_OPERATOR”的错误。
为了避免这种情况,我必须做的:
$Factory = new Factory();
$app = $Factory->GetApp();
为什么是这个必要吗?如果它有任何区别,我正在运行PHP 5.2。
一个稍微同义的答案,但这是因为PHP 5.2不支持。
然而,在PHP 5.4 - 请看实例http://www.php.net/manual/en/migration54.other.php
添加的类成员访问(例如,(新富) - >巴()) 支持
你也可以做是这样的:
class MyClass {
public static function init(){
return new self();
}
....
}
然后你就可以使用这样的:
MyClass::init()->doStuff()->Whatever();
这是我的眼睛更好一点,比使用
(new Myclass())->doStuff()->Whatever();
+1的显而易见。 – dqhendricks 2012-02-22 04:55:07