定义全局变量或数组。下面是 2 个版本的语法。
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 子句执行强类型。只有当其为强类型时,智能感应功能才可用于对象和变量引用。更多的信息,请参见 如何对类、对象和内存变量代码执行强类型。
说明
您可以在当前 Visual FoxPro 工作期运行的任何程序中使用和修改全局变量和数组。
除了全局内存变量 FOX 和 FOXPRO 初始化为真(.T.)之外,任何用 PUBLIC 创建的内存变量和数组都被初始化为假(.F.)。根据运行的 Visual FoxPro 版本,您可以使用全局变量 FOX 和 FOXPRO 有条件的运行代码。
注意:
在早期版本中使用全局变量 FOX 和 FOXPRO 来分别侦测早期版本的 FoxBASE 和 FoxPro。
必须在赋值之前声明所有想要作为全局的内存变量或数组。如果在程序中赋值给内存变量或数组,然后使用 PUBLIC 声明为全局,则 Visual FoxPro 将产生一条语法错误。
从“命令”窗口中创建的内存变量或数组自动声明为全局。
示例
复制代码
SET TALK OFF
PUBLIC val1,val2
val1 = 10
val2 = 15
DO down
? val1
? val2
RELEASE ALL && 仅释放私有内存变量
DISPLAY MEMORY LIKE val?
RELEASE val1,val2 && 全局内存变量必须明确的释放
DISPLAY MEMORY LIKE val?
PROCEDURE down
PRIVATE val1
val1 = 50
val2 = 100
? val1
? val2
RETURN