類的成員訪問在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