新聞中心

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、南岳網(wǎng)站維護(hù)、網(wǎng)站推廣。
和局部變量相比,靜態(tài)變量具有一下特點(diǎn):
- 當(dāng)函數(shù)執(zhí)行完畢后,靜態(tài)變量不會(huì)消失;
- 靜態(tài)變量只能在函數(shù)內(nèi)部使用;
- 靜態(tài)變量只會(huì)被初始化一次;
- 靜態(tài)變量初始化的值可以省略,默認(rèn)值為 null;
- 靜態(tài)變量的初始值只能是具體的字符串、數(shù)值等,而不能是一個(gè)表達(dá)式。
注意:在函數(shù)外面使用靜態(tài)變量時(shí)并不會(huì)報(bào)錯(cuò),這時(shí)它的生命周期與作用域和全局變量是一樣的;在函數(shù)內(nèi)部定義靜態(tài)變量時(shí),它的生命周期也和全局變量一樣,但是作用域和局部變量的作用域一樣的。
靜態(tài)變量并不是說(shuō)它的值是不能改變的,不能改變值的那叫常量。 其實(shí)靜態(tài)變量的值是可以改變的,而且它會(huì)保持最新的值。之所以稱為靜態(tài),是因?yàn)樗粫?huì)隨著函數(shù)的調(diào)用和退出而發(fā)生變化。即上次調(diào)用函數(shù)的時(shí)候,如果我們給靜態(tài)變量賦予某個(gè)值的話,那么下次函數(shù)調(diào)用時(shí),這個(gè)值是保持不變。
還有一點(diǎn)需要注意的是:靜態(tài)變量雖然在程序的整個(gè)執(zhí)行過(guò)程中始終存在,但是它的作用域和局部變量是一樣的,在作用域之外是不能使用的。
說(shuō)了這么多,那么要怎么定義一個(gè)靜態(tài)變量呢?這是我們就需要用到 static 關(guān)鍵字了,使用方法如下:
static 變量 = 值;
當(dāng)同時(shí)定義多個(gè)靜態(tài)變量,且使用默認(rèn)值初始化時(shí),也可以像下面這樣:(多個(gè)變量之間使用“,”分隔)
static 變量1, 變量2, ...
靜態(tài)變量大多用在,函數(shù)需要多次調(diào)用且需要共享一份數(shù)據(jù)時(shí),比如使用遞歸的方式遍歷某個(gè)目錄。
【示例】定義一個(gè)靜態(tài)變量來(lái)記錄函數(shù)調(diào)用的次數(shù),另外再定義一個(gè)局部變量與靜態(tài)變量做對(duì)比,具體代碼如下:
';
}
demo();
demo();
demo();
demo();
?>
運(yùn)行結(jié)果如下所示:
第 1 次運(yùn)行 demo 函數(shù), 局部變量 $b 的值為:1
第 2 次運(yùn)行 demo 函數(shù), 局部變量 $b 的值為:1
第 3 次運(yùn)行 demo 函數(shù), 局部變量 $b 的值為:1
第 4 次運(yùn)行 demo 函數(shù), 局部變量 $b 的值為:1
新聞標(biāo)題:PHPstatic:靜態(tài)變量
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/dhoihic.html


咨詢
建站咨詢
