unset() Destroy the specified variable.
The behavior of unset() in a function will vary depending on the type of variable you want to destroy. (Recommended learning: PHP Video Tutorial)
If you unset() a global variable in a function, only the local variable will be destroyed, and the variables in the calling environment will remain The same value as before calling unset().
<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>
If you want to unset() a global variable in a function, you can use the $GLOBALS array:
<?php function foo() { unset($GLOBALS['bar']); } $bar = "something"; foo(); ?>
If you unset() a global variable passed by reference in a function variables, only the local variables are destroyed, and the variables in the calling environment will retain the same value before calling unset().
<?php function foo(&$bar) { unset($bar); $bar = "blah"; } $bar = 'something'; echo "$bar\n"; foo($bar); echo "$bar\n"; ?>
If you unset() a static variable in a function, the static variable will be destroyed inside the function. However, when this function is called again, this static variable will be restored to the value it had before it was last destroyed.
<?php function foo() { static $bar; $bar++; echo "Before unset: $bar, "; unset($bar); $bar = 23; echo "after unset: $bar\n"; } foo(); foo(); foo(); ?>
The above is the detailed content of What is unset in php. For more information, please follow other related articles on the PHP Chinese website!