php中static靜態關鍵字的使用

2021-09-09 05:49:15 字數 1085 閱讀 7881

php中除了常規類和方法的使用,訪問控制之外,還有靜態關鍵字static,靜態變數可以是區域性變數也可以是全域性變數,當乙個程式段執行完畢時,靜態變數並沒有消失,它依然存在於記憶體中,下次在定義時還是以前的值,常用於遞迴或子函式中保留之前的值,可以用來定義變數和方法,作用就不具體說了,說一下使用方式,下面簡單的**:

1 class human

9 }10 11 class me extends human

12 22

23 //靜態變數和方法操作

24 private static $a="abc";

25 26 public static function abc()

30 }

31 32 echo me::$president. "\n";

33 me::changepresident("web");

34 echo me::$president. "

";35

36 37

38 me::abc();

39 me::abc();

首先定義了乙個人類human,然後定義乙個類me繼承了human,則human裡面的成員都可以通過me的物件來使用了,並且整個使用過程中成員變數的值都是有效的,根據**可以看到:靜態變數的值改變之後下次再呼叫就是改變之後的了,如果是普通變數則無法實現,只能是通過物件改變才有效,而通過類內部的方法是無法改變的,通過最後兩行**更容易看出,呼叫了2次方法abc後靜態變數$a的值就發生改變了,靜態變數自己想一下就可以理解了,用途也很廣泛,下面總結幾點靜態關鍵字相關的規則:

1、一般靜態屬性用於儲存類的公有資料

2、靜態方法內部只能訪問靜態屬性,包括本類和父類的

3、靜態成員不需要例項化物件就可以訪問

4、在本類內部訪問靜態屬性用self或static關鍵字訪問,後面帶上的變數要包括$,比如: self::$a或者static::$a

5、訪問父類靜態屬性使用parent,如:parent::$name

6、在類外部訪問靜態變數或者方法時使用類名直接訪問,無需例項化。如:me::$pan和me::abc()

具體的要點就這麼多了

**

靜態Static關鍵字

靜態關鍵字修飾成員變數 如果乙個成員變數使用了static修飾詞,那麼這個變數就是屬於類的,而不是屬於物件的,多個物件共享乙份資料 public class student public static void setroom string room public student string na...

靜態static關鍵字

static修飾類的屬性,則這個類的所有物件都共享同乙份。一旦使用static修飾成員方法,那麼這就是靜態方法。靜態方法不屬於物件,而是屬於類的。如果沒有static關鍵字,那麼必須首先建立物件,然後通過物件才能訪問它。如果有了static關鍵字,那麼不需要建立物件,直接通過類名來使用它。注意事項 ...

靜態關鍵字static

1 靜態關鍵字的使用static 2 類裡面的普通成員是屬於物件的,不是屬於類的 呼叫的時候是用物件呼叫 3 什麼叫做靜態的 類靜態成員是屬於類的,不是屬於每個物件的 4 定義靜態成員用static關鍵字修飾 5 靜態 函式 方法裡面無法呼叫普通成員 6 靜態 函式 方法可以呼叫靜態成員,使用sel...