2016-01-09 122 views
-1

據說可以使用類名來代替類對象來訪問靜態函數。但是我可以使用類名和同一類的對象來訪問靜態函數。我們可以使用對象訪問靜態方法嗎?

哪種方式正確?

+0

如果您有選擇,請使用類名前綴。這會讓你清楚你正在調用一個類方法。這是一種很好的做法,就像在引用實例成員時始終在C系列語言中使用「this」前綴一樣,以便您可以輕鬆地將它們與局部變量區分開來。 –

回答

0

它是特定語言的實現細節。類足以訪問靜態方法,因此不需要對象;類可以直接指定或從對象隱式推導。後者實際上是一種可以由語言提供的語法糖。

+0

謝謝。語言是PHP。 –

0

在理論上,您可以使用實例標識符和類型標識符來調用靜態方法。

當您想要獲取靜態方法的地址時,情況可能會發生變化。有些語言在使用&Type.staticMethod時只會返回一個簡單的指針,而在使用&instance.staticMethod時只會返回一個胖指針。

相關問題