国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

詳解PHP變量傳值賦值和引用賦值變量銷毀

2024-05-05 00:07:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了PHP變量傳值賦值和引用賦值變量銷毀的具體代碼,供大家參考,具體內(nèi)容如下

<?php   $a = 100;   $b = 200;   var_dump($a,$b); //int(100) int(200) ?>

php中,上面的代碼,變量是怎么存放的呢?

PHP,傳值賦值,引用賦值,變量銷毀

上面的代碼變動(dòng)下,將變量b賦值給變量a,會(huì)發(fā)生什么?

<?php  $a = 100;  $b = 200;  $a = $b;/*多了這個(gè)*/  var_dump($a,$b); //int(200) int(200)?>

問(wèn)題來(lái)了,$a = $b,那么是將變量a的指針指向了變量b指針?biāo)赶虻奈恢茫窟€是變量a指向的位置的值變了?

PHP,傳值賦值,引用賦值,變量銷毀

引用賦值和上面?zhèn)髦蒂x值不同,引用賦值是兩個(gè)變量指向一個(gè)地方,一旦這樣,一改俱改。

怎么引用賦值呢?變量名前加&即可,

$a = &$b;

這樣賦予變量a的就不僅僅是變量b的值,而是變量b的地址,變量a和變量b共同指向一個(gè)地址。

<?php  $a = 100;  $b = 200;  $a = &$b;  var_dump($a,$b); //int(200) int(200)  /*變量b引用賦值給變量a后,ab指向同一個(gè)地址,將會(huì)一改俱改,如下:*/  $a =500;   var_dump($a,$b);//int(500) int(500) 一改俱改  $b = 700;  var_dump($a,$b);//int(700) int(700)  一改俱改?>

PHP,傳值賦值,引用賦值,變量銷毀

<?php/*理解下面的話*/$a = 100; //變量a賦值int 100 ,100是基礎(chǔ)數(shù)據(jù)類型,不是變量,是存在變量指向位置的$a = $b;//變量b的值 賦值 給變量a,變量a,b各有各的指向,執(zhí)行之后,各是各的。$a = &$b;//變量b的值的地址 賦值給變量 a ,變量a,b共用一個(gè)地址哦!一改俱改!?>
<?php/*php中unset()是用來(lái)銷毀變量的,但很多時(shí)候,unset()只把變量給銷毀了,內(nèi)存中存放的該變量的值仍然沒(méi)有銷毀,也就是沒(méi)能達(dá)到我們想要的釋放內(nèi)存的效果。這里可以用 變量=null 的方法來(lái)釋放其內(nèi)存unset也會(huì)釋放內(nèi)存的情況1. 在變量值所占空間超過(guò)255字節(jié)長(zhǎng)的時(shí)候,unset(變量)才會(huì)釋放內(nèi)存2. 只有當(dāng)指向該值的所有變量都被銷毀后,地址才會(huì)被釋放(比如$a,$b都指向該值,僅僅unset($a);是不釋放的,$b還是正常存在的)(也要執(zhí)行1的判斷) */  $a = 200;  $b = &$a;  unset($a);  var_dump($a,$b); //NULL int(100)?>

上面的代碼,執(zhí)行到unset($a)時(shí)候,就是將變量a的指向斷開,同時(shí)將變量a扔出花名冊(cè),從下圖可以看出,對(duì)變量b是沒(méi)有影響的。

但是,如果用$a = null;這種方式銷毀變量時(shí),將會(huì)有如下影響:

<?php  $a = 100;  $b = &$a;  $a = null;  var_dump($a,$b); //NULL NULL?>

這種方式,釋放了內(nèi)存,但是共用一個(gè)地址的另一個(gè)變量也受到了影響。

看看這兩種方式在數(shù)組上的應(yīng)用:

<?php  $aaa = array(    'a'=>1,    'b'=>2  );  unset($aaa['a']);  print_r($aaa); //Array ( [b] => 2 ) ,用unset,數(shù)組中這一項(xiàng)不存在了        $bbb = array(    'a'=>1,    'b'=>2  );  $bbb['a'] = null;  print_r($bbb); //Array ( [a] => [b] => 2 ) ,用 = null,數(shù)組中這一項(xiàng)還存在,只是為空了?>

以上所述是小編給大家介紹的PHP變量傳值賦值和引用賦值變量銷毀詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 松阳县| 永川市| 通渭县| 文水县| 于田县| 清涧县| 陕西省| 永善县| 章丘市| 盱眙县| 大埔区| 尉犁县| 长汀县| 漳州市| 全州县| 陇南市| 城步| 土默特右旗| 彰化县| 濉溪县| 盐亭县| 长沙市| 泉州市| 杨浦区| 隆尧县| 夏河县| 镇远县| 龙口市| 峨山| 长宁区| 招远市| 新兴县| 泽普县| 巴彦县| 宜州市| 体育| 库车县| 寻乌县| 乾安县| 黄龙县| 九江县|