2012-01-09 125 views
7

我只是想知道使用public static functionprivate static function而不是簡單的public functionprivate function有什麼好處?PHP |爲什麼我應該使用公共靜態/私有靜態函數而不是公共/私有函數?

+0

這不是有利或不利的問題。另外,你有沒有搜索過這個網站? – BoltClock 2012-01-09 07:09:41

+4

你不需要創建對象來使用靜態方法..並且有很多相關的問題! – meze 2012-01-09 07:09:58

+0

是的,我正在閱讀一些PHP手冊網站,但我似乎不明白爲什麼使用靜態方法,我只理解,而不是像這樣調用公共函數' - >'我可以做這個'::'和一些其他信息,我讀了關於PHP手冊網站上的靜態方法... – Roland 2012-01-09 07:13:15

回答

22

在定義它們的類的實例上調用「正常」方法(通常稱爲實例方法)。該方法將始終通過$this訪問其對象,因此它可以使用該對象所攜帶的數據(並且實際上修改它)。這是面向對象編程的核心方面,它使得一個類不僅僅是一堆數據。

另一方面,對靜態方法的調用不與特定對象關聯。它們在這方面的表現與常規功能一樣;實際上唯一的區別是它們可能被標記爲private,並且也可以在自己的類的實例上訪問私有方法和變量。靜態函數實際上只是程序編程的延伸。

例如,一個實例方法被調用的對象上:

$object = new MyClass(); 
$result = $object->myInstanceMethod(); 

靜態方法被稱爲類本身:

$result = MyClass::myStaticMethod(); 
相關問題