网站推广.NET

网站推广.NET

如何利用unset()函数销毁单个或多个变量实例详解

来源:互联网

unset函数是php自带的一个销毁变量的函数,我们介绍了利用unset来销毁静态变量与全局变量的方法,同时出可以销毁数组变量哦,下面我们看实例。

例 1. unset() 示例

<?php// 销毁单个变量unset ($foo);// 销毁单个数组元素unset ($bar[&#39;quux&#39;]);// 销毁一个以上的变量unset ($foo1, $foo2, $foo3);?>

unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

<?phpfunction destroy_foo() {global $foo;unset($foo);}$foo = ‘bar’;destroy_foo();echo $foo;?>

上边的例子将输出:

bar

如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

<?phpfunction foo(&$bar) {unset($bar);$bar = “blah”;}$bar = ‘something’;echo “$barn”;foo($bar);echo “$barn”;?>

上边的例子将输出:

something
something

unset() 静态变量
严格讲,使用 unset() 销毁静态变量,只是断开了变量名和变量值之间的引用。

例子:

<?phpfunction foo() {    static $b;        $a++;    $b++;    echo "$a---$bn";    unset($a,$b);    var_dump($a);    var_dump($b);    echo "######################n";}foo();foo();foo();?>

运行该例子,输出:

1---1NULLNULL#######################1---2NULLNULL#######################1---3NULLNULL#######################

unset() 全局变量
同 unset() 静态变量一样,如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

试着比较如下两个例子:

<?phpfunction destroy_foo() {    global $foo;    unset($foo);}$foo = &#39;bar&#39;;destroy_foo();echo $foo;?>
<?phpfunction destroy_foo() {    global $foo;    unset($GLOBALS[&#39;foo&#39;]);}$foo = &#39;bar&#39;;destroy_foo();echo $foo;?>

运行第一个例子会输出:bar ,而第二个例子则不会有任何输出。

unset