萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP中unset銷毀變量引發的問題

PHP中unset銷毀變量引發的問題

在php中我要銷毀變量並內存釋規范的寫法就是直接使用unset()函數了,但是我們測試會發現unset只是當指向該值的所有變量(比如有引用變量指向該值)都被銷毀後,地址才會被釋放,下面我們來看幾個實例。

首先我們來看一個例子:

 代碼如下 復制代碼

<?php
    $a = "hello springload";
    $b = $a;
    unset($b);
    echo $a; //hello springload
?>

這個我們很清楚,unset($b),只是斷開了變量名和值得綁定,但是一個有意思的問題出現了:

 代碼如下 復制代碼

<?php
    $a = "hello springload";
    $b = $a;
    unset($a);
    echo $b;//hello springload
?>

為什麼$a銷毀了,為嘛$b的值還在呢?

注:unset()函數只有當指向該值的所有變量(比如有引用變量指向該值)都被銷毀後,地址才會被釋放,如下:

 代碼如下 復制代碼

<?php
    $a = "hello springload";
    $b = $a;
    unset($a);
    unset($b);
    echo $b;//輸出空
?>

copyright © 萬盛學電腦網 all rights reserved