САМОУЧИТЕЛЬ PHP 4




Массив $GLOBALS - часть 3


}

Из второго фрагмента видно, что оператор Unset($a)

в теле функции не уничтожит глобальную переменную $a, а лишь "отвяжет" от нее ссылку $a. Точно то же самое происходит и в первом случае. Вот пример:

$a=100;

function Test()

{ global $a;

  Unset($a);

}

Test();

echo $a;  // выводит 100, т. е. настоящая $a не была удалена в Test()!

Эта особенность инструкции global появилась только в PHP версии 4, т. е. когда начали поддерживаться ссылки! Если вы запустите приведенный только что пример на PHP версии 3, то при исполнении echo увидите предупреждение: $a не определена. Помните это при переносе старых сценариев на новый PHP версии 4.

Как же нам удалить глобальную $a

из функции? Существует только один способ: использовать для этой цели $GLOBALS['a']. Вот как это делается:

function Test() { unset($GLOBALS['a']); }

$a=100;

Test();

echo $a; // Ошибка! Переменная $a не определена!




Содержание  Назад  Вперед