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

时间:2011-11-18 08:21:23

标签: php oop

这可能是一个新手问题,但这个PHP 5.4功能

  

“在实例化时添加了类成员访问权限(例如(new foo) - > bar())支持。”

意味着Class::factory('some_class_name')将会消失?

1 个答案:

答案 0 :(得分:2)

不一定。工厂通常会做一些事情; 首先,它决定基于某些条件返回哪种对象, second ,它通常也处理依赖关系。也就是说,如果A需要B,你从工厂请求A,B将在创建时传递给它。
你不能用(new Foo)->bar()

来做到这一点

更重要的是,工厂将返回一个物体,你现在可以动态地做它:

$foo = new $classname;

使用类似($foo = new Foo)->bar()的语法有助于您希望在创建后立即执行方法,或者您只是在对象上执行一个方法。