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

例 1. unset() 示例

 代码如下 复制代码

<?php
// 销毁单个变量
unset ($foo);

// 销毁单个数组元素
unset ($bar['quux']);

// 销毁一个以上的变量
unset ($foo1, $foo2, $foo3);
?>

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

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

 代码如下 复制代码

<?php
function destroy_foo() {
global $foo;
unset($foo);
}

$foo = ‘bar’;
destroy_foo();
echo $foo;
?>

上边的例子将输出:

bar

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

 代码如下 复制代码

<?php
function foo(&$bar) {
unset($bar);
$bar = “blah”;
}

$bar = ‘something’;
echo “$barn”;

foo($bar);
echo “$barn”;
?>
上边的例子将输出:

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 = 'bar';
destroy_foo();
echo $foo;
?>

<?php
function destroy_foo() {
    global $foo;
    unset($GLOBALS['foo']);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

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

时间: 2024-09-21 00:47:06

php unset()销毁单个或多个变量的相关文章

PHP中使用unset销毁变量并内存释放问题_php技巧

复制代码 代码如下: for ( $i = 1; $i < 100; $i++ ) { $str = str_repeat('01234567', $i); $a = memory_get_usage(); unset($str); $b = memory_get_usage(); echo "\n ".$i.': '.($b - $a).' Bytes.'; } 从结果看出: 8 x 32 = 256 在256字节长的时候才真正有必要释放内存,有些人说,不如直接$str = n

PHP中unset销毁变量引发的问题

首先我们来看一个例子:  代码如下 复制代码 <?php     $a = "hello springload";     $b = $a;     unset($b);     echo $a; //hello springload ?> 这个我们很清楚,unset($b),只是断开了变量名和值得绑定,但是一个有意思的问题出现了:  代码如下 复制代码 <?php     $a = "hello springload";     $b = $a;

php变量销毁unset的用法

php教程变量销毁unset的用法 unset -- 释放给定的变量 描述 void unset ( mixed var [, mixed var [, ...]]) unset() 销毁指定的变量.注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句.这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误.   参考php手册: <?php /* Imagine this is

PHP如何销毁已经过期的变量并释放内存?unset使用方法

我们先看一个例子:  代码如下 复制代码 <?php  $s=str_repeat('1',255);  //产生由255个1组成的字符串  $m=memory_get_usage();  //获取当前占用内存  unset($s);  $mm=memory_get_usage();  //unset()后再查看当前占用内存  echo $m-$mm;  ?>  最后输出unset()之前占用内存减去unset()之后占用内存,如果是正数,那么说明unset($s)已经将$s从内存中销毁(或者

PHP变量的定义、可变变量、变量引用、销毁方法

 这篇文章主要介绍了PHP变量的定义.可变变量.变量引用.销毁方法,需要的朋友可以参考下  代码如下: <?php $long="big_long_variable_name"; $$long="PHP";     /* 用存放在变量$long里的字符串作为新变量的变量名,等同于$big_long_variable_name="PHP"; */ $short=& $big_long_variable_name;  /* 取变量$bi

PHP中变量引用与变量销毁机制分析_php技巧

本文实例分析了PHP中变量引用与变量销毁机制.分享给大家供大家参考.具体分析如下: 变量是php中一个非常重要的类型了,我们的有数据都通过变量或常量来进行操作,下文来看看变量引用与变量销毁. 在php中,符号"&"表示引用. 1.看看不引用的情况是这样子: 复制代码 代码如下: $a  = "hello world";//定义一个变量,下面赋值给$b $b = $a;//这一步没有在$a之前加符号&,像这样子"$b= & $a&qu

PHP变量的定义、可变变量、变量引用、销毁方法_php技巧

复制代码 代码如下: <?php$long="big_long_variable_name";$$long="PHP";     /* 用存放在变量$long里的字符串作为新变量的变量名,等同于$big_long_variable_name="PHP"; */$short=& $big_long_variable_name;  /* 取变量$big_long_variable_name的值赋给变量$short,此时$short的值为

php 变量引用与变量销毁机制详细介绍_php实例

php 变量引用与变量销毁机制 在php中,符号"&"表示引用. 1.看看不引用的情况是这样子: $a = "hello world";//定义一个变量,下面赋值给$b $b = $a;//这一步没有在$a之前加符号&,像这样子"$b= & $a".没有加&,实际上原理是会将变量$a复制拷贝一份,也就是内存中重新申请一个地址存储变量$b了 ps:在php中,使用"="直接赋值,其实就是拷贝一份右

php unset()和null变量清除分析

unset ( mixed var [, mixed var [, ...]]) unset() 销毁指定的变量.注意在 php教程 3 中,unset() 将返回 true(实际上是整型值 1),而在 php 4 中,unset() 不再是一个真正的函数:它现在是一个语句.这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误 null 字节是变量为空 $t = ''; 变量有值,不过是空,isset()是true null 常数是 $t = null; 变量没有值,连空都不是,