PHP static局部靜態(tài)變量和全局靜態(tài)變量總結(jié)

靜態(tài)局部變量的特點(diǎn):

1.不會(huì)隨著函數(shù)的調(diào)用和退出而發(fā)生變化,不過(guò),盡管該變量還繼續(xù)存在,但不能使用它。倘若再次調(diào)用定義它的函數(shù)時(shí),它又可繼續(xù)使用,而且保存了前次被調(diào)用后留下的值

2.靜態(tài)局部變量只會(huì)初始化一次

3.靜態(tài)屬性只能被初始化為一個(gè)字符值或一個(gè)常量,不能使用表達(dá)式。即使局部靜態(tài)變量定義時(shí)沒(méi)有賦初值,系統(tǒng)會(huì)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量);靜態(tài)變量的初始值為0。

4.當(dāng)多次調(diào)用一個(gè)函數(shù)且要求在調(diào)用之間保留某些變量的值時(shí),可考慮采用靜態(tài)局部變量。雖然用全局變量也可以達(dá)到上述目的,但全局變量有時(shí)會(huì)造成意外的副作用,因此仍以采用局部靜態(tài)變量為宜。

復(fù)制代碼代碼如下:

function test()

{

static $var = 5;? //static $var = 1+1;就會(huì)報(bào)錯(cuò)

$var++;

echo $var . ' ';

}

test(); //2

test(); //3

test(); //4

echo $var; //報(bào)錯(cuò):Notice: Undefined variable: var

關(guān)于靜態(tài)全局變量:

復(fù)制代碼代碼如下:

//全局變量本身就是靜態(tài)存儲(chǔ)方式,所有的全局變量都是靜態(tài)變量

function static_global(){

global $glo;

$glo++;

echo $glo.'';

}

static_global(); //1

static_global(); //2

static_global(); //3

echo $glo . ''; //3

所以靜態(tài)全局變量使用并不多。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是static靜態(tài)變量?(以下為在C語(yǔ)言中的理解) 靜態(tài)變量 類型說(shuō)明符是static。 靜態(tài)變量屬于靜態(tài)存儲(chǔ)...
    geeooooz閱讀 914評(píng)論 0 0
  • 一、數(shù)組 1、數(shù)組定義 數(shù)組就是一個(gè)鍵值對(duì)組成的語(yǔ)言結(jié)構(gòu),鍵類似于酒店的房間號(hào),值類似于酒店房間里存儲(chǔ)的東西。 $...
    空谷悠閱讀 860評(píng)論 4 11
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,644評(píng)論 18 399
  • 一、預(yù)備知識(shí)—程序的內(nèi)存分配一個(gè)由c/C++編譯的程序占用的內(nèi)存分為以下幾個(gè)部分1、棧區(qū)(stack)— 由編譯器...
    shannoon閱讀 1,480評(píng)論 0 1

友情鏈接更多精彩內(nèi)容