首頁  >  文章  >  後端開發  >  php靜態變數和變數的差別

php靜態變數和變數的差別

(*-*)浩
(*-*)浩原創
2019-09-25 09:55:083224瀏覽

php靜態變數和變數的差別

普通變數:函數執行完自動銷毀;

靜態變數:不會被銷毀保留上次值

推薦手冊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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn