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.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com