PHP 4 на практике


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


Область видимости

(scope) определяется как область доступности переменной в той программе, в которой она была объявлена. В зависимости от области видимости переменные РНР делятся на четыре типа:

  • локальные переменные;
  • параметры функций;
  • глобальные переменные;
  • статические переменные.
  • Локальные переменные

    Переменная, объявленная внутри функции, считается локальной;

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

    Основное достоинство локальных переменных — отсутствие непредвиденных побочных эффектов, связанных со случайной или намеренной модификацией глобальной переменной. Рассмотрим следующий пример:

    $х = 4;

    function assignx () {

    $х = 0;

    print "\$x inside function is $x. <br>";

    }

    assignx();

    print "\$x outside of function is $x. <br>";

    При выполнении этого фрагмента выводится следующий результат:

    $х inside function is 0.

    $х outside of function is 4.

    Как видите, программа выводит два разных значения переменной $х. Дело в том, что переменная $х внутри функции assignx имеет локальную природу, и изменение ее значения никак не отражается на значении, существующем за пределами этой функции. Справедливо и обратное — модификация $х за пределами функции никак не отражается на локальных переменных функции assignx().

    Параметры функций

    В РНР, как и во многих других языках программирования, любые параметры, передаваемые функции при вызове, должны быть объявлены в заголовке функции. Хотя параметрам присваиваются аргументы, переданные извне, после выхода из функции они становятся недоступными.

    Параметры объявляются в круглых скобках после имени функции. Объявление параметров практически не отличается от объявления типичной переменной:




    Начало  Назад  Вперед



    Книжный магазин