unset

unset

(PHP 4, PHP 5, PHP 7)

unset - 取消设置给定变量

描述

void unset ( mixed $var [, mixed $... ] )

unset()销毁指定的变量。

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

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

<?php function destroy_foo()  {     global $foo;     unset($foo } $foo = 'bar'; destroy_foo( echo $foo; ?>

上面的例子将输出:

bar

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

<?php function foo()  {     unset($GLOBALS['bar'] } $bar = "something"; foo( ?>

如果一个PASSED BY REFERENCE变量在函数内部未设置(),则只销毁局部变量。调用环境中的变量将保留与调用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

Parameters

var

要取消设置的变量。

...

另一个变量

返回值

没有返回任何值。

例子

示例#1 unset()示例

<?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类型的强制转换。它不会改变它的变量。

<?php $name = 'Felipe'; var_dump((unset) $name var_dump($name ?>

上面的例子将输出:

NULL string(6) "Felipe"

Notes

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

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

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

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

See Also

  • isset() - 确定变量是否已设置且不为NULL

  • empty() - 确定变量是否为空

  • __unset()

  • array_splice() - 删除数组的一部分并将其替换为其他内容

← unserialize

var_dump →

© 1997–2017 The PHP Documentation Group

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

https://secure.php.net/manual/en/function.unset.php