PHP 5.4: (new foo)->bar()


PHP 5.4: (new foo)->bar()

这可能是一个新手问题,但是这个PHP 5.4的特性

"添加了实例化时的类成员访问(例如(new foo)->bar())支持。"

表示Class::factory('some_class_name')将消失?

不一定。工厂通常只做几件事;第一个,它根据一些条件决定返回哪种对象,第二个,它通常也处理依赖关系。也就是说,如果A需要B,你向工厂请求A, B将在创建时传递给它。你不能用(new Foo)->bar()

更重要的是,工厂将返回一个对象,现在无论如何都可以动态地执行:

$foo = new $classname;

如果你想在创建后立即执行一个方法,或者如果你只在对象上执行一个方法,那么像($foo = new Foo)->bar()这样的语法是有帮助的。