以前一直以為
靜態方法的調用:類名::靜態方法
非靜態方法的調用:類對象->非靜態方法
最近研究一個類,發現一個比較奇怪的問題,用“類對象->靜態方法”這種方式居然成功的調用了靜態方法。很疑惑,還以為是該類中定義了__call魔術方法,在通過對象調用不到該靜態方法的時候,做了處理,通過類名調用了該方法。但是自己重新寫了一個類,沒有__call方法,竟然也能通過類對象調用靜態方法,跟發現了新大陸一樣。
我還是太年輕....
在網上找到一些歸納:
類::靜態方法 //可以
類::非靜態方法 //不可以(雖然方法里不用$this關鍵字時,可以!但不支持這種寫法)
類對象->靜態方法 //可以
類對象->非靜態方法 //可以