普通變數:函數執行完自動銷毀;
靜態變數:不會被銷毀保留上次值
推薦手冊:php完全自學手冊
變數的前面加上static 就構成了靜態變數(static 變數)。 (推薦學習:PHP程式設計從入門到精通)
static全域變數與一般全域變數區別:static全域變數只初使化一次,防止在其他檔案單元中被引用;
靜態和公共、受保護、私有這3種屬性格式沒有關係, 他們並不是並列的
公共、受保護、私有同樣可以設定為靜態
public static $a; private static $b;
靜態變數具有這樣的特性:
當在某函數裡定義一個靜態變數後,這個變數不會即使函數退出了,在下次呼叫這個函數時,它會使用前次被呼叫後留下的值。
此外,雖然該變數不隨函數的退出而繼續存在,但函數的外部並不能使用它。
相關文章推薦:
1.php靜態變數什麼時候銷毀
2.在PHP中靜態變數和全域變數有哪些不同?
相關影片推薦:
1.獨孤九賤(4)_PHP影片教學
因此,靜態變數的應用時機如下:
當多次呼叫函數,且要求在呼叫之間保留某些變數的值時,可考慮採用靜態局部變數。
雖然用全域變數也可以達到上述目的,但全域變數有時會造成意外的副作用,因此仍以採用局部靜態變數為宜。
靜態屬性的基本作用, 就是與普通的屬性不同的是, 靜態屬性會記住之前的值, 舉例說明:
function a() { $a = 1; $a += 1; echo $a; } //然后连续3次调用这个函数测试下 a(); a(); a(); 上面代码会输出 2 2 2 改成静态属性: function a() { static $a = 1; $a += 1; echo $a; } //然后连续3次调用这个函数测试下 a(); a(); a();
以上會輸出2 3 4
#對於類別中定義的靜態變數來說,簡單點說,類別的靜態成員可以不用實例化而直接使用。
以上是php靜態變數和變數的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!