static關鍵字聲明的變量,即為靜態變量。 官方文檔定義: 聲明類屬性或方法為靜態,就可以不實例化類而直接訪問。靜態屬性不能通過一個類已實例化的對象來訪問(但靜態方法可以)。
為了兼容 php 4,如果沒有指定訪問控制,屬性和方法默認為公有。由于靜態方法不需要通過對象即可調用,所以偽變量 $this 在靜態方法中不可用。靜態屬性不可以由對象通過 -> 操作符來訪問。用靜態方式調用一個非靜態方法會導致一個 E_STRICT 級別的錯誤。就像其它所有的 PHP 靜態變量一樣,靜態屬性只能被初始化為文字或常量,不能使用表達式。所以可以把靜態屬性初始化為整數或數組,但不能初始化為另一個變量或函數返回值,也不能指向一個對象。自 PHP 5.3.0 起,可以用一個變量來動態調用類。但該變量的值不能為關鍵字 self,parent 或 static。上代碼:
<?phpclass Test{ public static $a = 1; public function b(){ echo self::$a; }}$obj = new Test();$obj->b();這個是在類中定義,類的方法中使用。
靜態變量在函數中,可以記錄每次函數執行結束的時候,該變量的值。當下次執行本函數的時候,能夠使用上一次執行本函數結束的時候,該變量所對應的值。
<?phpclass Test{ public static $a = 1; public function b(){ echo self::$a; } public function c(){ self::$a++; $this->b(); }}$obj = new Test();$obj->c();//結果打印出來,2還有靜態函數,下次說。
新聞熱點
疑難解答
圖片精選