php unset 多可以什么_php unset()销毁单个或多个变量

例 1. unset() 示例

代码如下

复制代码

// 销毁单个变量

unset ($foo);

// 销毁单个数组元素

unset ($bar['quux']);

// 销毁一个以上的变量

unset ($foo1, $foo2, $foo3);

?>

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

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

代码如下

复制代码

function destroy_foo() {

global $foo;

unset($foo);

}

$foo = ‘bar’;

destroy_foo();

echo $foo;

?>

上边的例子将输出:

bar

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

代码如下

复制代码

function foo(&$bar) {

unset($bar);

$bar = “blah”;

}

$bar = ‘something’;

echo “$barn”;

foo($bar);

echo “$barn”;

?>

上边的例子将输出:

something

something

unset() 静态变量

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

例子:

代码如下

复制代码

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() 之前一样的值。

试着比较如下两个例子:

代码如下

复制代码

function destroy_foo() {

global $foo;

unset($foo);

}

$foo = 'bar';

destroy_foo();

echo $foo;

?>

function destroy_foo() {

global $foo;

unset($GLOBALS['foo']);

}

$foo = 'bar';

destroy_foo();

echo $foo;

?>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值