📜  PHP unset()函数(1)

📅  最后修改于: 2023-12-03 15:18:21.375000             🧑  作者: Mango

PHP unset() 函数

简介

unset() 函数用于删除某个变量。使用此函数可释放变量占用的内存,同时也将该变量从其所在的作用域中移除。

语法

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

其中,要删除的变量以参数列表形式传递给函数。可同时删除多个变量,参数之间以逗号分隔。函数返回一个布尔值,表示是否成功删除了变量。如果变量不存在,则返回 false

参数

$var:要删除的变量,可以是任何一种 PHP 变量类型。

返回值

该函数返回一个布尔值,表示是否成功删除了变量。如果变量不存在,则返回 false

示例
// 删除单个变量
$foo = 'hello world';
unset($foo);
echo $foo; // 输出:Notice: Undefined variable: foo in ...

// 删除多个变量
$foo = 'hello';
$bar = 'world';
unset($foo, $bar);
echo $foo; // 输出:Notice: Undefined variable: foo in ...
echo $bar; // 输出:Notice: Undefined variable: bar in ...

// 删除数组元素
$arr = ['foo', 'bar', 'baz'];
unset($arr[1]);
print_r($arr); // 输出:Array ( [0] => foo [2] => baz )

// 删除对象属性
$obj = new stdClass;
$obj->foo = 'bar';
$obj->bar = 'baz';
unset($obj->foo);
print_r($obj); // 输出:stdClass Object ( [bar] => baz )
注意事项
  • 如果尝试删除一个未定义的变量,函数将返回 false
  • 如果尝试删除一个已经销毁的变量,函数将会报错。
  • 删除数组元素时,原始数组中的键名将会保留。例如,如果要删除数组 $arr 中的第一个元素,函数将会将 $arr[0] 设为 null,并不会删除该元素所在的键。如果需要删除键名,可使用 array_values() 函数重新索引数组。
  • 删除对象属性时,实例属性将被删除,但类属性不受影响。如果要删除类属性,必须在类定义中使用 unset() 函数(建议不要这样做,会对代码可读性产生不良影响)。