中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中實現變量傳值賦值

發布時間:2021-06-07 16:36:36 來源:億速云 閱讀:197 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關怎么在PHP中實現變量傳值賦值,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

具體內容如下

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

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

怎么在PHP中實現變量傳值賦值

上面的代碼變動下,將變量b賦值給變量a,會發生什么?

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

問題來了,$a = $b,那么是將變量a的指針指向了變量b指針所指向的位置?還是變量a指向的位置的值變了?

怎么在PHP中實現變量傳值賦值

引用賦值和上面傳值賦值不同,引用賦值是兩個變量指向一個地方,一旦這樣,一改俱改。

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

$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中實現變量傳值賦值

<?php
/*理解下面的話*/

$a = 100; 
//變量a賦值int 100 ,100是基礎數據類型,不是變量,是存在變量指向位置的

$a = $b;
//變量b的值 賦值 給變量a,變量a,b各有各的指向,執行之后,各是各的。

$a = &$b;
//變量b的值的地址 賦值給變量 a ,變量a,b共用一個地址哦!一改俱改!


?>
<?php
/*


php中unset()是用來銷毀變量的,但很多時候,unset()只把變量給銷毀了,
內存中存放的該變量的值仍然沒有銷毀,也就是沒能達到我們想要的釋放內存的效果。
這里可以用 變量=null 的方法來釋放其內存

unset也會釋放內存的情況

1. 在變量值所占空間超過255字節長的時候,unset(變量)才會釋放內存
2. 只有當指向該值的所有變量都被銷毀后,地址才會被釋放(比如$a,$b都指向該值,僅僅unset($a);是不釋放的,$b還是正常存在的)(也要執行1的判斷)



 */




  $a = 200;
  $b = &$a;
  unset($a);
  var_dump($a,$b); //NULL int(100)
?>

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

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

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

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

看看這兩種方式在數組上的應用:

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

關于怎么在PHP中實現變量傳值賦值就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

和平区| 海宁市| 苍南县| 梁平县| 西峡县| 盈江县| 临泽县| 新田县| 伊春市| 奇台县| 宁陵县| 裕民县| 内乡县| 丽江市| 兖州市| 襄汾县| 双峰县| 白银市| 瑞昌市| 安阳县| 九龙坡区| 苗栗市| 永泰县| 衡阳市| 鹤峰县| 南江县| 清远市| 台山市| 青田县| 逊克县| 汉沽区| 静宁县| 江津市| 海盐县| 高尔夫| 千阳县| 陆河县| 平乡县| 和硕县| 丹阳市| 黄平县|