首頁 >後端開發 >php教程 >PHP類別的靜態static方法與靜態static變數

PHP類別的靜態static方法與靜態static變數

WBOY
WBOY原創
2016-07-29 09:02:101147瀏覽

在php中,存取類別的方法/變數有兩種方法:
1. 建立物件$object = new Class(),然後使用」->」呼叫:$object->attribute/function,前提是該變數/方法可訪問。
2. 直接呼叫類別方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件:
A. 如果是變量,需要該變量可訪問。
B. 如果是方法,除了該方法可訪問外,還需要滿足:
b1) 如果是靜態方法,沒有特殊條件;
b2) 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態的變數/方法,當然,呼叫靜態的變數/方法沒有問題。

然後我們再看一下使用$object->… 和使用class::…都有什麼區別:
1. 使用$object->… ,需要執行建構子建立物件;
2. 使用class::… 調用靜態方法/變量,不需要執行建構子建立物件;
3. 使用class::… 呼叫非靜態方法/變量,也不需要執行建構子建立物件。

然後奇怪的地方就出來了,既然2和3都一樣,那靜態方法/變數存在還有什麼意義呢?
差異還是顯然存在的,如下:
1. 靜態變數
靜態成員只保留一個變數值,而這個變數值對所有的實例都是有效,也就是說,所有的實例共享這個成員。
2. 靜態方法
靜態方法可以直接使用class::… 來調用,而非靜態方法需要滿足一定限制條件才能使用class::.. 的方法調用,如之前所述

以上就介紹了PHP類別的靜態static方法和靜態static變量,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn