类的成员访问在PHP的之前的版本5.4 I使用的静态类实例化对象,并立即调用所需的功能,例如:静态类VS上实例化
$result = Foo::init()->bar();
在上面的例子中,静态函数init()
只是实例化它所包含的类并将其作为对象返回。这提供了方法链接功能,并允许我立即在一行代码中调用bar()
。静态函数init()
看起来是这样的:
static public function init() {
$object = new self();
return $object;
}
对实例化类成员访问现在PHP 5.4增加了支持,而不是使用一个静态类现在我可以做到以下几点:
$result = (new Foo)->bar();
我的问题:是我使用静态类的旧方法不好,如果是这样,为什么?现在PHP支持实例化类成员访问,这是在对象实例化后立即访问类成员的更正确方法吗?
当你需要一个功能时,你为什么要写一个类? - 也许两者同样糟糕:你应该有两堆对象:那些照顾实例化别人的人,以及那些不在乎的人。 – hakre
我在我的问题中提供的代码只是一个简单的例子来展示我正在谈论的概念。你想介绍一下你对两堆物品的评论吗? –
看看这里:http://misko.hevery.com/2008/07/08/how-to-think-about-the-new-operator/,还有一个视频:http://www.youtube .com/watch?v = 4F72VULWFvc - 这两对物体大约在24分钟左右,但整个视频值得一看。 – hakre