首页 php正文

PHP unset() 函数如何使用?unset()作用详解

启明SEO php 2023-06-09 15:53:05 606 0 unset

unset() 函数用于销毁给定的变量。

实例

<?php

// 销毁单个变量
$a="123";
$b=[1,2,3];
$c="abc";
echo $a."<br>";
foreach($b as $d){
	echo $d."<br>";
}
echo $c."<br>";
unset ($a);

// 销毁单个数组元素

unset ($b[1]);

// 销毁一个以上的变量

unset($a, $b, $c);
echo "************<br>";
echo $a."<br>";
foreach($b as $d){
	echo $d."<br>";
}
echo $c;

?>

123

1

2

3

abc

************

Warning: Invalid argument supplied for foreach() in D:\phpstudy_pro\WWW\ss.php on line 57

因为数组被销毁了,所以 foreach() 使用报错。


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


实例

<?php

function destroy_a() {

    global $a;
	global $b;

    unset($a);
	echo $b."<br>";
	echo $a."<br>";
}

$a = 'abc';
$b="def";
destroy_a();

echo $a."<br>";

?>

输出结果为:

def


abc


如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现:


实例

<?php

function destroy_a() {

    
	global $b;

    unset($GLOBALS['a']);
	echo $b."<br>";
	echo $a."<br>";

}


$a = 'abc';
$b="def";
destroy_a();

echo $a."<br>";

?>

输出结果为:def


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

实例

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

以上例程会输出:


something

something

如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。


实例

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "Before unset: $bar, ";
    unset($bar);
    $bar = 23;
    echo "after unset: $bar\n";
}
foo();
foo();
foo();
?>

以上例程会输出:


Before unset: 1, after unset: 23

Before unset: 2, after unset: 23

Before unset: 3, after unset: 23


评论

启明SEO微信

有什么问题欢迎添加微信咨询

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......