類和對象:靜態屬性、靜態方法


在PHP中,使用關鍵字 static 修飾成員屬性和成員方法被稱為靜態屬性和靜態方法。靜態屬性和靜態方法不需要在類被實例化的情況下可以直接使用。

靜態屬性

與普通的成員屬性不同,靜態屬性屬於類本身而不屬於類的任何實例。靜態屬性可以被看做是存儲在類當中的全局變量,可以在任何地方通過類來訪問它們。

由於靜態屬性不受任何具體對象的限制,所以不需要建立類實例,而可以直接引用類中的靜態屬性,使用語法格式如下:

類名稱::$靜態屬性名稱

其中,符號”::”被稱作范圍解析操作符,它可以用於訪問靜態成員、靜態方法和常量,還可以用於覆蓋類中的成員和方法。

如果想在同一類的成員方法中訪問靜態屬性,可以通過在該靜態屬性的名稱前加上操作符”self::”來實現。例子如下:

class  DaBing{
     static  $bing =0;       //定義靜態屬性 bing
     function  addOne(){
         self:: $bing ++;        //調用同一類中的靜態屬性 bing
         echo "\$bing的值為:" .self:: $bing ++;
     }
}
$obj = new  DaBing();
$obj ->addOne();

該程序使靜態屬性的值加1,執行結果為:1

靜態方法 

在PHP中將成員方法聲明為靜態,就稱其為靜態方法。由於靜態方法不受任何具體對象的限制,所以不需要建立類實例就可以直接引用類中的方法。語法格式如下:

類名稱::靜態方法名稱([參數1,參數2,……])

與調用靜態屬性相同,在類中使用操作符”self::”來表示調用同一類中的靜態方法,例子如下:

class  DaBing{
     static  function  addOne( $number ){   //定義靜態方法 addOne()
         echo "\$number+1=" ;
         echo  $number +1;
     }
     static  function  showResult( $number ){
         echo "\$number=" . $number ;
         echo "<br>" ;
         self::addOne( $number );   //調用同一類中的靜態方法 addOne()
     }
}
$number =100;
DaBing::showResult( $number );

該程序執行的結果為:
$number=100
$number+1=101


免責聲明!

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



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