php中static靜態關鍵字的使用


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

 1 class Human{
 2     public $name;
 3     protected $height;
 4 
 5     public static $sValue="Static Value in Human";
 6     public function eat($food){
 7         echo $this->name . "'s eating ". $food. "\n";
 8     }
 9 }
10 
11 class Me extends Human
12 {
13     public $team="lsl";
14     private $age="23";
15 
16     public static $president="zzy";
17 
18     public static function changePresident($newPrsdt){
19         static::$president = $newPrsdt;
20         echo parent::$sValue . "<br />";
21     }
22 
23     //靜態變量和方法操作
24     private static $a="abc";
25 
26     public static function abc(){
27         echo "<br />".self::$a;
28         self::$a.="def";
29     }
30 }
31 
32 echo Me::$president. "\n";
33 Me::changePresident("web");
34 echo Me::$president. "<br />";
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()

具體的要點就這么多了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM