(PHP 4, PHP 5)
unset — Удаляет данную переменную
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
Переменная, которую необходимо удалить.
Другая переменная ..
Эта функция не возвращает значения после выполнения.
Версия | Описание |
---|---|
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.