>php教程 >php手册 >php unset()销毁单个或多个变量

php unset()销毁单个或多个变量

WBOY
WBOY원래의
2016-05-25 16:47:27983검색

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

例 1. unset() 示例

实例代码如下:

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

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

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

实例代码如下:

<?php 
    function destroy_foo() { 
    global $foo; 
    unset($foo); 
    } 
    $foo = &#39;bar&#39;; 
    destroy_foo(); 
    echo $foo; 
?>

上边的例子将输出:

bar

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

实例代码如下:

<?php 
    function foo(&$bar) { 
    unset($bar); 
    $bar = "blah"; 
    } 
    $bar = &#39;something&#39;; 
    echo "$bar\n"; 
    foo($bar); 
    echo "$bar\n"; 
?>

上边的例子将输出:

something
something

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

例子,实例代码如下:

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

运行该例子,输出:

1---1
NULL
NULL
#######################
1---2
NULL
NULL
#######################
1---3
NULL
NULL
#######################

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

试着比较如下两个例子:

实例代码如下:

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

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.