Определяет имена глобальных переменных или массивов. Существует две синтаксических конструкции данной команды.

PUBLIC MemVarList
PUBLIC [ ARRAY ] ArrayName1( nRows1 [ , nColumns1 ] ) [, ArrayName2( nRows2 [, nColumns2 ] ) ] ... 
[AS type [OF ClassLib]]

Параметры

PUBLIC MemVarList

Определяет одну или несколько (список) переменных памяти (имен переменных), которые требуется инициализировать как глобальные переменные. Имена Переменных в списке MemVarList перечисляются через запятую.

Одиночные символы, такие как "A" - "J", а также "M", являются зарезервированными, и не могут служить именами переменных.

PUBLIC [ ARRAY ] ArrayName1( nRows1 [, nColumns1 ] ) [, ArrayName2( nRows2 [, nColumns2] )] ...

Определяет один или несколько массивов глобальных переменных. Дополнительную информацию смотрите в разделе: DIMENSION, команда.

[ AS type [OF ClassLib] ]

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

В опции AS могут быть указаны только базовые типы. Инструмент подсистемы IntelliSense работает только для явно описанных ранее типов подклассов. Дополнительную информацию смотрите в разделе: Как: Закрепить частоиспользуемую типизацию Классов, Объектов и Переменных.

Expand imageКомментарии

Область видимости Глобальных переменных - текущая сессия системы Visual FoxPro.

Глобальные переменные и массивы, созданные командой PUBLIC, имеют начальное значение =False (.F.), за исключением глобальных переменных с именами FOX, FOXPRO, которые имеют значения = True (.T.). В зависимости от используемой вами версии Visual FoxPro вы можете использовать указанные глобальные переменные FOX и FOXPRO для создания специальных конструкций выполнения некоторых фрагментов программного кода.

NoteПримечание

Глобальные переменные FOX и FOXPRO использовались в младших версиях FoxBASE и FoxPro, соответственно.

Если вы используете глобальные переменные в программном коде, ранее вы должны определить их в данной команде PUBLIC. Если вы присвоите некоторой переменной определенное значение (неявно объявите ее глобальной), далее попытаетесь описать ее в команде PUBLIC, Visual FoxPro генерирует сообщение об ошибке.

Переменные и массивы переменных, создаваемые в Командном Окне, автоматически принимают статус Глобальных переменных.

Expand imageПример

 CopyCode imageКопировать Код
SET TALK OFF
PUBLIC val1,val2
val1 = 10
val2 = 15

DO down
? val1
? val2

RELEASE ALL && Releases private variables only
DISPLAY MEMORY LIKE val?
RELEASE val1,val2 && Public variables must be released explicitly
DISPLAY MEMORY LIKE val?

PROCEDURE down
PRIVATE val1
val1 = 50
val2 = 100
? val1
? val2
RETURN

Expand imageСм. также