php如何通过变量销毁unset的过程讲解
unset -- 释放给定的变量
描述
void unset ( mixed var [, mixed var [, ...]])
unset() 销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。
参考php手册:
$a=10;
$b=20;
$c=array ('one'=>array (1, 2, 3));
$a=&$c['one'][2];
$b=&$a; // or $b=&$c['one'][2]; result is same as both "$c['one'][2]" and "$a" is at same pointer.
unset($c['one'][2]);
$c['one'][2]=500; //now it is in array
$c['one'][2]=&$a;
unset($a);
unset($b);
/* look at memory
_________________________________
|pointer | value | variable's |
--------------------------------------
| 1 | NULL | --- |
| 2 | NULL | --- |
| 3 | 1 | $c['one'][0] |
| 4 | 2 | $c['one'][1] |
| 5 | 3 | $c['one'][2] | //$c['one'][2] is returned, $a,$b is destroyed
--------------------------------------- ?>
I hope this helps.
如此便能够说明php 的 unset是如何进行的
先要强调的一点是unset在php中已经不再是一个函数了,既然不是函数,那么就没有了返回值,所以用的时候不能够用unset的返回值来做判断。
其次,在函数中,unset只能销毁局部变量,并不能销毁全局变量,来看下手册的一个例子
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = ‘bar’;
destroy_foo();
echo $foo;
?>
返回的结果为
bar http://www.3ppt.com/Design/PHP/50278.html