static 靜態(tài)變量

生物都是有一定的記憶功能的,如何讓程序也有記憶的功能呢?
需要用到靜態(tài)變量

普通的局部變量,在每一次調(diào)用函數(shù)時都會進(jìn)行一下初始化,并且在函數(shù)調(diào)用結(jié)束時,值就從內(nèi)存里消失了


function t() {
    $a = 3;
    $a += 1;
    return $a;
} 
echo t(),'<br >';
echo t(),'<br >';
echo t(),'<br >';

結(jié)果如下:

jingtai.png

函數(shù)寫好之后就放在這里,如果不調(diào)用,是不執(zhí)行的
執(zhí)行是在內(nèi)存中來回倒騰數(shù)據(jù)
當(dāng)我們調(diào)用函數(shù)的時候,會在內(nèi)存中申請一個空間來進(jìn)行執(zhí)行
當(dāng)函數(shù)運(yùn)行完畢時,這個空間就會從內(nèi)存中清除掉.
當(dāng)然,如果再調(diào)用函數(shù)也是會再次申請開辟空間的
并且在空間清除前,會 return 一個值給調(diào)用行使用

如何聲明一個靜態(tài)變量?
static

function t1() {
    static $a = 3;
    $a += 1;
    return $a;
} 
echo t1(),'<br >';
echo t1(),'<br >';
echo t1(),'<br >';

運(yùn)行結(jié)果如下:

static.png

聲明靜態(tài)變量之后,在函數(shù)初次調(diào)用時,會對數(shù)據(jù)進(jìn)行初始化
但是當(dāng)函數(shù)結(jié)束時,申請的空間不會從內(nèi)存中消失
并且會單獨(dú)開辟一個空間來存儲return返回的值,該值在下一次的函數(shù)執(zhí)行會接著用

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

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

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