Главная » Мастерская » Статьи » Документация по PHP

Функция unset

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();

Copyright ByWeb©
Hosted by uCoz