Rumah > php教程 > php手册 > teks badan

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

WBOY
Lepaskan: 2016-05-25 16:47:27
asal
946 orang telah melayarinya

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

例 1. unset() 示例

实例代码如下:

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

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

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

实例代码如下:

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

上边的例子将输出:

bar
Salin selepas log masuk

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

实例代码如下:

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

上边的例子将输出:

something
something
Salin selepas log masuk

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(); 
?>
Salin selepas log masuk

运行该例子,输出:

1---1
NULL
NULL
#######################
1---2
NULL
NULL
#######################
1---3
NULL
NULL
#######################
Salin selepas log masuk

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; 
?>
Salin selepas log masuk

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


Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!