Области видимости переменных

May 4, 2010 by admin Комментировать »

Переменные, объявленные внутри функции, являются локальными. Это значит то, что вне функции они будут недоступны. В РНР у каждой переменной есть своя область видимости. В этом отношении все переменные можно разделить на два вида: локальные и глобальные.

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

<?php

//Определение функх^ш function local best{) (

//Определение локальной переменной

$local_var = "Это локальная переменная";

}

//Попытаемся вывести на экран

echo $local_var ?>

Выполнение данного скрипта не приведет к положительному результату, так как вне функции local_test() переменная $local_var недоступна. Теперь рас­смотрим обратный пример.

<?php

$some_var = "Это переменная вне функции";

function global_test() { echo $some_var;

)

?>

Переменная, определенная в основном коде программы, по сути, является гло­бальной, однако по умолчанию также недоступна внутри функции. Значение внешней переменной может быть доступно внутри функции, например, в том слу­чае, если его передать в качестве аргумента. И наоборот, значение локальной пере­менной внутри функции может быть доступно для внешнего кода, только если его вернуть с помошью команды return.

Впрочем, для того чтобы переменная была видна внутри функции, в РНР также существует возможность сделать ее суперглобальной. Для этих целей используется ключевое слово GLOBAL перед именем переменной или предопределенный массив $GLOBALS [ ]. Рассмотрим оба варианта.

<?php $age = 18;

function say_age() {

//Получаем доступ к $age GLOBAL $age; echo $age;

}

?>

Объявление GLOBAL решает все проблемы, однако в языке РНР 5 более предпоч­тительным вариантом является использование массива $GLOBALS [ ]. Этот массив является предопределенным, т.е., говоря другими словами, "встроенным" в язык РНР. В качестве элементов в нем хранятся все глобальные переменные текущего скрипта, имена которых записаны в виде ключа.

<?php $age = 18;

function say_age() {

echo $GLOBALS["age"];

}

?>

Обратите внимание на то, что имя переменной $age в качестве ключа использу­ется без значка доллара "$" и в кавычках.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты