本文主要介紹靜態(tài)變量php(php靜態(tài)變量的含義),下面一起看看靜態(tài)變量php(php靜態(tài)變量的含義)相關(guān)資訊。
php static靜態(tài)變量和普通變量的區(qū)別在于,靜態(tài)變量(static variables)是加在變量前面的。靜態(tài)變量和普通變量的區(qū)別在于,非靜態(tài)全局變量的作用范圍是整個(gè)源程序。當(dāng)一個(gè)源程序包含多個(gè)源文件時(shí),非靜態(tài)全局變量在所有源文件中都有效。靜態(tài)全局變量限制了它們的范圍。只有定義變量的源文件才是有效的,不能在同一個(gè)源程序的其他源文件中使用。因?yàn)殪o態(tài)全局變量的作用域僅限于一個(gè)源文件,所以只能用于源文件中的函數(shù),以免引起其他源文件的錯(cuò)誤。靜態(tài)變量與普通變量的區(qū)別:靜態(tài)全局變量與普通全局變量的區(qū)別:靜態(tài)全局變量只是在其他文件單元中先被創(chuàng)建和阻塞;靜態(tài)局部變量與普通局部變量不同:靜態(tài)局部變量只初始化一次,下一次初始化基于結(jié)果值。靜態(tài)函數(shù)和普通函數(shù)的區(qū)別:靜態(tài)函數(shù)只有一部分在內(nèi)存中,普通函數(shù)在每次調(diào)用中都維護(hù)一個(gè)副本。在全局變量之前使用關(guān)鍵字static,全局變量被定義為全局靜態(tài)變量。1)內(nèi)存中的位置:靜態(tài)存儲(chǔ)區(qū)(靜態(tài)存儲(chǔ)區(qū)在整個(gè)程序運(yùn)行過(guò)程中存在)2)初始化:初始化后的全局靜態(tài)變量會(huì)自動(dòng)初始化為0(自動(dòng)程序的對(duì)象的值是任意的,除非是顯示初始化)。3)作用域:全局靜態(tài)變量在文件聲明之外是不可見(jiàn)的。準(zhǔn)確地說(shuō),從定義的點(diǎn)到文件的結(jié)尾。靜態(tài)變量的優(yōu)點(diǎn):不會(huì)被其他文件訪問(wèn),同名變量可以在其他文件中修改,不會(huì)。內(nèi)存中的位置:靜態(tài)存儲(chǔ)初始化:初始化的全局靜態(tài)變量會(huì)自動(dòng)初始化為0(自動(dòng)程序的對(duì)象的值是任意的,除非是顯示初始化)。作用域:作用域仍然是局部作用域,作用域在聲明函數(shù)或塊時(shí)結(jié)束。注意:使用static修改局部變量時(shí),它將局部變量的位置從原棧存儲(chǔ)到靜態(tài)存儲(chǔ)區(qū),但局部靜態(tài)變量在離開(kāi)作用域后不會(huì)被銷(xiāo)毀,但它仍然留在內(nèi)存中,直到程序完成,只是我們不能再訪問(wèn)它了。當(dāng)static用于修改全局變量時(shí),它改變了全局變量的作用域,該變量在聲明文件時(shí)是不可見(jiàn)的,但它不改變它的位置或靜態(tài)存儲(chǔ)區(qū)域。普通函數(shù)的例子:將變量w3sky usd定義為static,代碼如下:靜態(tài)變量也提供了一種處理遞歸函數(shù)的。遞歸函數(shù)是一種調(diào)用自身的方法。寫(xiě)遞歸函數(shù)要小心,因?yàn)樗赡苁菬o(wú)限遞歸的,沒(méi)有出口。一定有辦法停止遞歸。下面這個(gè)簡(jiǎn)單的函數(shù)遞歸計(jì)數(shù)是10,靜態(tài)變量$用來(lái)決定什么時(shí)候停止。靜態(tài)變量和遞歸函數(shù)的例子:注意:靜態(tài)變量不能用表達(dá)式聲明。比如static $ = 1 ^ 2;static int = 1是錯(cuò)誤的,這個(gè)聲明是正確的。感謝您的閱讀。希望能幫到你。感謝您對(duì)本站的支持。
了解更多靜態(tài)變量php(php靜態(tài)變量的含義)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。