首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

unset

(PHP 4, PHP 5, PHP 7)

unset - 取消设置给定变量

描述

代码语言:javascript
复制
void unset ( mixed $var [, mixed $... ] )

unset()销毁指定的变量。

函数内部的unset()行为可能会有所不同,具体取决于您尝试销毁的变量类型。

如果全局化变量在函数内部未设置(),则仅销毁局部变量。调用环境中的变量将保留与调用unset()之前相同的值。

代码语言:javascript
复制
<?php
function destroy_foo() 
{
    global $foo;
    unset($foo);
}

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

上面的例子将输出:

代码语言:javascript
复制
bar

要在函数内部取消设置()一个全局变量,然后使用$ GLOBALS数组来执行此操作:

代码语言:javascript
复制
<?php
function foo() 
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

如果一个PASSED BY REFERENCE变量在函数内部未设置(),则只销毁局部变量。调用环境中的变量将保留与调用unset()之前相同的值。

代码语言:javascript
复制
<?php
function foo(&$bar) 
{
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

上面的例子将输出:

代码语言:javascript
复制
something
something

如果静态变量在函数内部未设置(),则unset()仅在函数的其余部分的上下文中销毁变量。以下调用将恢复变量的先前值。

代码语言:javascript
复制
<?php
function foo()
{
    static $bar;
    $bar++;
    echo "Before unset: $bar, ";
    unset($bar);
    $bar = 23;
    echo "after unset: $bar\n";
}

foo();
foo();
foo();
?>

上面的例子将输出:

代码语言:javascript
复制
Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23

Parameters

var

要取消设置的变量。

...

另一个变量

返回值

没有返回任何值。

例子

示例#1 unset()示例

代码语言:javascript
复制
<?php
// destroy a single variable
unset($foo);

// destroy a single element of an array
unset($bar['quux']);

// destroy more than one variable
unset($foo1, $foo2, $foo3);
?>

示例#2使用 (未设置) 转换

(未设置)转换经常与unset()函数混淆。(unset)为了完整性,cast 仅用作NULL类型的强制转换。它不会改变它的变量。

代码语言:javascript
复制
<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

上面的例子将输出:

代码语言:javascript
复制
NULL
string(6) "Felipe"

Notes

注意:因为这是一种语言结构而不是函数,所以不能使用变量函数调用它。

注意:可以取消设置当前上下文中可见的对象属性。

注意:从PHP 5开始,无法在对象方法中取消设置$ this

注意:在不可访问的对象属性上使用unset()时,如果声明,将调用__unset()重载方法。

See Also

  • isset() - 确定变量是否已设置且不为NULL
  • empty() - 确定变量是否为空
  • __unset()
  • array_splice() - 删除数组的一部分并将其替换为其他内容

← unserialize

var_dump →

代码语言:txt
复制
 © 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券