unset用来销毁变量的,不一定释放内存!
实验证明在只有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存。
<?php
$a = 'I am test.';
$b = & $a;
echo $b ."n";
?>
输出结果非常明了:
I am test.
Example 3:
<?php
$a = 'I am test.';
$b = & $a;
unset($a);
echo $a ."n";
echo $b ."n";
?>
Notice: Undefined variable: a in /usr/local/www/apache22/data/test/gc.php on line 4
I am test.
Example 4:
<?php
error_reporting(E_ALL);
$a = 'I am test.';
$b = & $a;
unset($b);
echo $a ."n";
echo $b ."n";
?>
I am test.
Notice: Undefined variable: b in /usr/local/www/apache22/data/test/gc.php on line 5
Example 5:
<?php
$a = 'I am test.';
$b = & $a;
$a = null;
echo '$a = '. $a ."n";
echo'$b = '. $b ."n";
?>
$a =
$b =
Example 6:
<?php
$a = 'I am test.';
$b = & $a;
unset($a);
unset($b);
echo '$a = '. $a ."n";
echo'$b = '. $b ."n";
?>
Notice: Undefined variable: a in /usr/local/www/apache22/data/test/gc.php on line 5
Notice: Undefined variable: b in /usr/local/www/apache22/data/test/gc.php on line 5
2 查看内存使用情况
PHP内置函数memory_get_usage()能返回当前分配给PHP脚本的内存量,单位是字节(byte)。memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况。