PC FAQ





Главная Delphi PHP Контакты

Последние статьи
Популярное
  • Обзор Палитры Компонент
    В данной статье дается обзор стандартных и дополнительных компонент из Палитры Компонент Delphi (ст
  • Основы работы с базами данных
    В этом уроке описываются основы работы с базами данных. Напомним, что под базой данных понимается н
  • DDE Delphi
    В данной статье приводятся основные факты о DDEML и показывается, как можно использовать DDE в п
  • Логические величины (истина/ложь)
    Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические в
  • Переменные
    В примерах, приведенных выше, я попутно показал, как происходит присваивание и изменение значений
  • Объект TOLEContainer
    Из статьи Вы узнаете основные сведения об OLE, некоторые вещи относительно OLE 2 и OLE Automation
  • Строковые значения
    Строкой (string) называется последовательность символов, которая рассматривается как единое целое,
  • Массивы
    Массив представляет собой список однотипных элементов. Существует два типа массивов, различающи
  • Печать текстовая и графическая
    Если Вам нужно напечатать на принтере документ в текстовом режиме, то это делается следующим образо
  • Управление проектом
    Проект Delphi Любой проект имеет, по-крайней мере, шесть файлов, связанных с ним. Три из них отн
Глобальные переменные

Глобальные переменные, в отличие от локальных, доступны в любой точке программы. Но чтобы изменить значение глобальной переменной, необходимо специально объявить ее как глобальную в соответствующей функции. Для этого перед именем переменной ставится ключевое слово GLOBAL. Пример:

$somevar = 15;

function addit() {

GLOBAL $somevar;

$somevar++;

print "Somevar is $somevar";

}

addit();

Будет выведено значение $somevar, равное 16. Допустим, вы забыли включить следующую строку:

GLOBAL $somevar;

В этом случае $somevar будет присвоено значение 1, поскольку эта переменная будет считаться локальной по отношению к функции addit( ). Локальная переменная по умолчанию инициализируется 0, а затем к ней прибавляется 1; таким образом, будет выведено значение 1.

Альтернативный способ объявления глобальных переменных связан с использованием массива РНР $GLOBALS( ). Давайте вернемся к предыдущему примеру и воспользуемся этим массивом для объявления глобальной переменной $somevar: $somevar = 15;

function addit() {

$GLOBALS["somevar"];

$somevar++;

}

addit();

print "Somevar is $somevar";

Каким бы способом ни обеспечивалась глобальная видимость переменной, помните, что неосторожное использование глобальных переменных нередко приводит к неожиданным результатам, причиняющим немало хлопот программистам. Таким образом, хотя глобальные переменные очень удобны, при их использовании необходима умеренность.

Статические переменные

Последний тип видимости переменных называется статическим. В отличие от переменных, объявленных параметрами и уничтожаемых при выходе из функции, статическая переменная сохраняет свое значение при повторном вызове. Для объявления статической переменной перед ее именем ставится ключевое слово STATIC:

STATIC $somevar;

Рассмотрим пример:

function keep_track() {

STATIC $count = 0;

$count++;

print $count;

print "<br>";

}

keep_track();

keep_track();

keep_track();

Как будут выглядеть результаты работы этого сценария? Если бы переменная $count не была объявлена статической (то есть являлась локальной), результат выглядел бы так:

1

1

1

Но поскольку переменная $count является статической, при каждом вызове функции будет сохраняться ее предыдущее значение, поэтому результат будет таким:

1

2

3

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






ГлавнаяОбратная связьDelphiPHP