作用功能變數分辨運算符(::)
有時,在沒有聲明任何案例的情況下訪問類中的函數或是基類中的函數和變量很有用處。而 :: 運算符即用於此情況。
上面的例子呼叫了 A 類的函數 example(),但是這裡並不存在 A 類的對象,因此不能這樣用 $a->example() 或是類似的方法呼叫 example()。反而我們將 example() 作為一個類函數來呼叫,也就是說,作為一個類自身的函數來呼叫,而不是這個類的任何對象。 這裡有類函數,但沒有類的變量。實際上,在呼叫函數時完全沒有任何對象。因而一個類的函數可以不使用任何物件(但可以使用局部或是全局變量),並且可以根本不使用 $this 變量。 上面的例子中,類 B 重新定義了函數 example()。A 類中原始定義的函數 example() 將被屏蔽並且不再生效,除非使用 :: 運算符來訪問 A 類中的 example() 函數。如:A::example()(實際上,應該寫為 parent::example(),下一章介紹該內容)。 就此而論,對於現用的對象,它可能有對象變量。因此可以在物件函數的內定使用 $this 和物件變量。 | |||||