Функции для работы с переменными
PHP Manual

unset

(PHP 4, PHP 5)

unsetУдаляет данную переменную

Описание

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

unset() удаляет перечисленные переменные.

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

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

<?php
function destroy_foo() 
{
    global 
$foo;
    unset(
$foo);
}

$foo 'bar';
destroy_foo();
echo 
$foo;
?>

Результат выполнения данного примера:

bar

Если необходимо удалить глобальную переменную внутри функции, то для этого нужно использовать массив $GLOBALS:

<?php
function foo() 
{
    unset(
$GLOBALS['bar']);
}

$bar "something";
foo();
?>

Если переменная, которая передается ПО ССЫЛКЕ, удаляется внутри функции, будет удалена только локальная пременная. Переменная в окружении вызова функции сохранит то же значение, что и до вызова unset().

<?php
function foo(&$bar
{
    unset(
$bar);
    
$bar "blah";
}

$bar 'something';
echo 
"$bar\n";

foo($bar);
echo 
"$bar\n";
?>

Результат выполнения данного примера:

something
something

Если статическая переменная удаляется внутри функции, unset() удалит переменную только в контексте дальнейшего выполнения функции. При последующем вызове предыдущее значение переменной будет восстановлено.

<?php
function foo()
{
    static 
$bar;
    
$bar++;
    echo 
"До удаления: $bar, ";
    unset(
$bar);
    
$bar 23;
    echo 
"после удаления: $bar\n";
}

foo();
foo();
foo();
?>

Результат выполнения данного примера:

До удаления: 1, после удаления: 23
До удаления: 2, после удаления: 23
До удаления: 3, после удаления: 23

Список параметров

var

Переменная, которую необходимо удалить.

var

Другая переменная ..

...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия Описание
4.0.0 unset() становится выражением. (В PHP 3 unset() всегда возвращала 1).

Примеры

Пример #1 Пример использования unset()

<?php
// удалить одну переменную
unset($foo);

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

// удалить несколько переменных
unset($foo1$foo2$foo3);
?>

Пример #2 Использование преобразования типа (unset)

<?php
$name 
'Felipe';

var_dump((unset) $name);
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

Замечание:

Существует возможность удалить даже аттрибуты объекта, видимые в текущем контексте.

Замечание:

Невозможно удалить $this внутри метода объекта, начиная с PHP 5.

Смотрите также


Функции для работы с переменными
PHP Manual