首页 php正文

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

启明SEO php 2023-06-09 15:53:05 1169 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指纹修改方法?

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