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.