如薯仿祥果在函數(shù)中大橋 unset() 一個靜態(tài)變量,那么在函數(shù)內(nèi)部此靜態(tài)變量將被銷毀。但是,當(dāng)再次調(diào)用此函數(shù)時,此靜態(tài)變量將被復(fù)數(shù)搏原為上次被銷毀之前的值。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機(jī)域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、阜南網(wǎng)站維護(hù)、網(wǎng)站推廣。
ThinkPHP清空靜態(tài)數(shù)組還是使用原生PHP來做,有幾種方法。
使用unset函數(shù)。如:unset($array); // 將變量array注銷
直接重新賦值。銷饑如:$arr = array(); // 將變量arr賦值為空數(shù)組
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?簡斗尺$arr = ''; // 將變量arr賦攔高值為空字符串
本文實例為大家分享了PHP變量傳值賦值和引用賦值變量銷毀的具體代碼,供大家參考,具體內(nèi)容如下
?php
$a
=
100;
$b
=
200;
var_dump($a,$b);
//int(100)
int(200)
?
php中,上面的代碼,變量是怎么存放的呢?
上面的代碼變動下,將變量b賦值給變量a,會發(fā)生什么?
?php
$a
=
100;
$b
=
200;
$a
=
$b;/*多了這個*/
var_dump($a,$b);
//int(200)
int(200)
?
問題來了,$a
=
$b,那么是將變量a的指針指向了變量b指針?biāo)赶虻奈恢??還是變量a指向的位置的值變了?
引用賦值和上面?zhèn)髦蒂x值不同,引用賦值是兩個變量指向一個地方,一旦這樣,一改俱改。
怎么引用賦值呢?變量名前加即可,
$a
=
$b;
這樣賦予變量a的就不僅僅是變量b的值,而是變量b的地址,變量a和變量b共同指向一個地址。
?php
$a
=
100;
$b
=
200;
$a
=
$b;
var_dump($a,$b);
//int(200)
int(200)
/*變量b引用賦值給變量a后,ab指向同一個地址,將會一改俱改,如下:*/
$a
=500;
var_dump($a,$b);//int(500)
int(500)
一改俱改
$b
=
700;
var_dump($a,$b);//int(700)
int(700)
一改俱改
?
?php
/*理解下面的話*/
$a
=
100;
//變量a賦值int
100
,100是基礎(chǔ)數(shù)據(jù)類型,不是變量,是存在變量指向位置的
$a
=
$b;
//變量b的值
賦值
給變量a,變量a,b各有各的指向,執(zhí)行之后,各是各的。
$a
=
$b;
//變量b的值的地址
賦值給變量
a
,變量a,b共用一個地址哦!一改俱改!
?
?php
/*
php中unset()是用來銷毀變量的,但很多時候,unset()只把變量給銷毀了,
內(nèi)存中存放的該變量的值仍然沒有銷毀,也就是沒能達(dá)到我們想要的釋放內(nèi)存的效果。
這里可以用
變量=null
的方法來釋放其內(nèi)存
unset也會釋放內(nèi)存的情況
1.
在變量值所占空間超過255字節(jié)長的時候,unset(變量)才會釋放內(nèi)存
2.
只有當(dāng)指向該值的所有變量都被銷毀后,地址才會被釋放(比如$a,$b都指向該值,僅僅unset($a);是不釋放的,$b還是正常存在的)(也要執(zhí)行1的判斷)
*/
$a
=
200;
$b
=
$a;
unset($a);
var_dump($a,$b);
//NULL
int(100)
?
上面的代碼,執(zhí)行到unset($a)時候,就是將變量a的指向斷開,同時將變量a扔出花名冊,從下圖可以看出,對變量b是沒有影響的。
但是,如果用$a
=
null;這種方式銷毀世梁變量時,將會有如下影響:
?php
$a
=
100;
$b
=
$a;
$a
=
null;
var_dump($a,$b);
//NULL
NULL
?
這種方式,釋放了內(nèi)存,但是共用一個地址的另一個變量也受到了影響。
看看這兩種方式在數(shù)組上的應(yīng)高爛用:
?php
$aaa
=
array(
'a'=1,
'b'=2
);
unset($aaa['a']);
print_r($aaa);
//Array
(
[b]
=
2
)
,用unset,數(shù)組中這一項不存在了
$bbb
=
array(
'a'=1,
'b'=2
);
$bbb['a']
=
null;
print_r($bbb);
//Array
(
[a]
=
[b]
=
2
)
,用
=
null,數(shù)組中這一項還存在,只是為空了
?
以上所述是小編給大家介紹的PHP變量傳值賦值和引用賦值變量銷毀詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:PHP生成短網(wǎng)址的思路以及實現(xiàn)方法的詳解PHP錯誤提示It
is
not
safe
to
rely
on
the
system……的解決方戚返漏法PHP隨機(jī)數(shù)函數(shù)rand()與mt_rand()的講解php微信掃碼支付
php公眾號支付PHP實現(xiàn)支持CURL字符串證書傳輸?shù)姆椒≒HP使用OB緩存實現(xiàn)靜態(tài)化功能示例PHP使用mysqli同時執(zhí)行多條sql查詢語句的實例PHP中命名空間的使用例子PHP
SESSION機(jī)制的理解與實例PHP自動載入類文件函數(shù)__autoload的使用方法