(PHP 4, PHP 5)
unset — Унищожава дадена променлива
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() се използва за променлива, която се ПРЕДАВА ПО РЕФЕРЕНЦИЯ в тялото на функция, само локалната променлива се унищожава. Променливата от областта, от която е глобализирана, ще запази стойността, която е имала извикването на 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 "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar\n";
}
foo();
foo();
foo();
?>
Примерът по-горе ще изведе:
Before unset: 1, after unset: 23 Before unset: 2, after unset: 23 Before unset: 3, after unset: 23
Променливата, която ще бъде унищожена.
Друга променлива ..
Няма връщана стойност.
Версия | Описание |
---|---|
4.0.0 | unset() става израз. (В PHP 3, функцията unset() връща винаги 1). |
Example #1 Пример за unset()
<?php
// унищожава дадена променлива
unset($foo);
// унищожава даден елемент от масив
unset($bar['quux']);
// унищожава повече от една променлива
unset($foo1, $foo2, $foo3);
?>
Забележка: Тъй като това е езикова конструкция а не функция, тя не може да бъде извикана посредством променливи функции
Забележка: Имате възможност да унищожите дори свойствата на обекти, видими в текущия контекст.
Забележка: След PHP 5 е невъзможно да унищожите $this в тялото на метод на обект.