Главная
домен в подарок! подробнее

каталог сайтов www.poiu.ru закрыт. копия сайта www.myphp.net.ru сделана мной без согласия автора, подробнее тут


unset

(unknown)

unset -- Уничтожает данную переменную

Описание

void unset (mixed var [, mixed var [, ...]])

Функция unset() уничтожает указанные переменные. Заметьте, что в PHP 3 unset() будет всегда возвращать TRUE (фактчически, число 1). В PHP 4, однако, unset() не является функцией как таковой, а утверждением. Поэтому она не возвращает никакого значения и попытка получить его приведет к ошибке.

Пример 1. unset() пример

// унчитожение одной переменной
unset ($foo);

// уничтожение одного элемента массива
unset ($bar['quux']);

// уничтожение более, чем одного значения
unset ($foo1, $foo2, $foo3);

Поведение  unset() внутри функции может меняться в зависимости от типа переменной, которую вы хотите уничтожить.

Если уничтожается глобальная переменная внутри функции, то уничтожается только локальная переменная. Уничтожение переменных окружения вызовет тот же эффект.

function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;

Вышеприведенный пример выведет:

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

Примечание: unset() является конструкцией языка.

Смотрите также isset() и empty().

<-Назад

Список всех функций

Если вы заметили ошибку, неточность, либо хотите опубликовть свой перевод неуказанных в разделе функций, пожалуйста, напишите по этому адресу.