在VFP中有几个范围限定词的区别:
LOCAL
LOCAL作为变量的限定词,他只作用于当前过程或者当前的函数,当一个过程或者函数结束时,这个变量即被销毁,
PRIVATE
在VFP中PRIVATE做为默认的限定词,也就是说,当你定义一个变量,它的前面没有加限定词时,这个变量是属于PRIVATE类型的,他的作用域是在其函数体内及其子函数体,当其所在的函数体结束时被释放.
PUBLIC
PUBLIC 定义了一个全局变量,在整个程序中都是可以 被访问的,除非用RELEASE命令将其释放
注意:当定义一个变量为PRIVATE时如果不对其进行初始话,编译器会报错
下面举一个例子说明:
新建一个TEST.PRG
在里面放置以下的内容
Clear
Public x
x = 5
DO parentf
?x
Procedure parentf
Local a
private x
a = 2
x = 1
?a
?x
DO parents
DO ss
?a
?x
EndProc
Procedure parents
x = 2
* ?a
?'parents'
?x
EndProc
Procedure ss
x = 4
?'ss'
?x
EndProc
LOCAL
LOCAL作为变量的限定词,他只作用于当前过程或者当前的函数,当一个过程或者函数结束时,这个变量即被销毁,
PRIVATE
在VFP中PRIVATE做为默认的限定词,也就是说,当你定义一个变量,它的前面没有加限定词时,这个变量是属于PRIVATE类型的,他的作用域是在其函数体内及其子函数体,当其所在的函数体结束时被释放.
PUBLIC
PUBLIC 定义了一个全局变量,在整个程序中都是可以 被访问的,除非用RELEASE命令将其释放
注意:当定义一个变量为PRIVATE时如果不对其进行初始话,编译器会报错
下面举一个例子说明:
新建一个TEST.PRG
在里面放置以下的内容
Clear
Public x
x = 5
DO parentf
?x
Procedure parentf
Local a
private x
a = 2
x = 1
?a
?x
DO parents
DO ss
?a
?x
EndProc
Procedure parents
x = 2
* ?a
?'parents'
?x
EndProc
Procedure ss
x = 4
?'ss'
?x
EndProc