unset
(нет информации о версии, может быть доступна только в CVS)
unset -- обнуляет указанную переменную
Описание
void unset ( mixed var [, mixed var [, ...]])
Замечание: unset() это языковая конструкция.
unset() уничтожает указанную переменную. Заметьте, что в PHP 3, unset всегда возвращает TRUE (в действительности целое число 1). В PHP 4, однако, unset больше не возвращает true: сейчас это выражение. Как такового, возвращаемого значения не существует, и попытка получить значение от unset приведёт к синтаксической ошибке.
Пример 1. Пример unset()
// 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);
Поведение unset() внутри функции может зависеть от того, какого типа переменную вы пытаетесь уничтожить.
Если глобализованная переменная унистожается внутри функции, только локальная переменная будет уничтожена. Переменная в вызывающей среде будет сохранять такое же значение, как и до вызова unset().
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
The above example would output:
bar
Если переменная, которая PASSED BY REFERENCE уничтожается внутри функции, будет уничтожена только локальная переменная. Переменная в вызывающей среде будет сохранять такое же значение, как и до вызова unset().
function foo(&$bar) {
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n";
foo($bar);
echo "$bar\n";
Предыдущий пример выведит:
something
something
Если статическая переменная уничтожается внутри функции, unset() уничтожит переменную и все её ссылки.
function foo() {
static $a;
$a++;
echo "$a\n";
unset($a);
}
foo();
foo();
foo();
Предыдущий пример выведит:
1
2
3
Если вы хотите уничтожить глобальную переменную внутри функции, вы можете использовать для этого массив $GLOBALS:
function foo() {
unset($GLOBALS['bar']);
}
$bar = "something";
foo();