衆所周知:php是一中弱類型語言,因此,在定義變量的時候咱們是不須要明確指明相應的數據類型的! 可是,有這個一個關鍵字 static 可讓一個變量的行爲變的很古怪(對不理解他的人來講)!php
下面,咱們看一個普通的例子函數
function testfunc(){ $var = 3; echo ++$var; echo '<br>'; } testfunc(); testfunc(); testfunc();
此程序輸出:三個4 。例子到這裏仍是很容易理解的!由於每次調用了相同的函數 var 變量都會進行一次初始化!測試
步入正題:再舉個栗子spa
function testfunc1(){ static $var = 3; echo ++$var; echo '<br>'; } testfunc1(); testfunc1(); testfunc1();
乍一看和上一個程序沒有什麼區別(實際上已經多了一個 static 修飾)code
可是此次的結果和上面的是徹底不一樣的 io
輸出結果以下function
4 5 6
再來看一個意外的例子test
function testfunc1(){ static $var = 3+4; echo ++$var; echo '<br>'; } testfunc1(); testfunc1(); testfunc1();
這裏的輸出結果以下:變量
Parse error: syntax error, unexpected '+', expecting ',' or ';' in E:\phptest\static-variable.php on line 7
通過上面的測試,想必你已經對 static 修飾符有必定的見解了!數據類型
下面:我來總結一下static 修飾的變量的一些特性
static 關鍵字修飾的變量只能初始化一次
static 關鍵字修飾的變量不會隨着函數的退出而註銷
static 關鍵字修飾的變量不能被初始化爲 表達式 (第三個例子證實之)
通過上面的總結和說明,咱們能夠大體得出這樣的結論:static變量適合使用場合是:屢次調用一個函數且要求在調用之間保留某些變量的值的狀況。