在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
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。