靜態變數只存在於函式作用域內,也就是說,靜態變數只存活在棧中。一般的函式內變數在函式結束後會釋放,比如區域性變數,但是靜態變數卻不會。就是說,下次再呼叫這個函式的時候,該變數的值會保留下來。
只要在變數前加上關鍵字static,該變數就成為靜態變數了。
01
<?php
02
function
test()
03
08
09
// 第一次執行,$nm = 2
10
test();
11
// 第一次執行,$nm = 4
12
test();
13
// 第一次執行,$nm = 8
14
test();
15
?>
程式執行結果:
1
2
2
4
3
8
函式test()執行後,變數$nm的值都儲存了下來了。
在class中經常使用到靜態屬性,比如靜態成員、靜態方法。
program list:類的靜態成員
靜態變數$nm屬於類nowamagic,而不屬於類的某個例項。這個變數對所有例項都有效。
::是作用域限定操作符,這裡用的是self作用域,而不是$this作用域,$this作用域只表示類的當前例項,self::表示的是類本身。
view source
print?
01
<?php
02
class
nowamagic
03
11
}
12
13
$nminstance1
=
new
nowamagic();
14
$nminstance1
-> nmmethod();
15
16
$nminstance2
=
new
nowamagic();
17
$nminstance2
-> nmmethod();
18
?>
程式執行結果:
1
3
2
5
**:
php 靜態變數static
靜態變數只存在於函式作用域內,也就是說,靜態變數只存活在棧中。一般的函式內變數在函式結束後會釋放,比如區域性變數,但是靜態變數卻不會。就是說,下次再呼叫這個函式的時候,該變數的值會保留下來。只要在變數前加上關鍵字static,該變數就成為靜態變數了。functiontest 第一次執行,nm tes...
PHP重置static靜態變數
php重置static靜態變數 1 todo 贈送虛擬幣類 class givencoin,max coin givenhealthgold json decode givenhealthgold,true 操作乙個靜態關鍵字 given money givenhealthgold given co...
關於PHP的static 靜態 變數
首先明確一下static在語法上的定義 php中的類中,靜態變數前要加static關鍵字修飾,而例項變數前則不加。靜態變數是什麼 靜態變數可以直接用類名加 呼叫,而不需要去例項化類,靜態變數的生命週期取決於類的生命週期,靜態變數一旦被呼叫,就會始終存在記憶體中,直到程式結束之後,靜態變數才會被登出。...