option explicit 导致的asp循环嵌套问题

在一次编程使用中要进行自身循环嵌套比如目录结构展开这种,如果使用了optionexplicit这个强制变量声明语句,程序就不能实现循环,去掉就可以,怪哉... 在一次编程使用中要进行自身循环嵌套比如目录结构展开这种,如果使用了option explicit这个强制变量声明语句,程序就不能实现循环,去掉就可以,怪哉 展开
 我来答
网海1书生
科技发烧友

2018-04-22 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部

这就涉及到变量是局部变量还是全局变量的问题了,我还是举个例子你应该一看就明白:

'如果变量不要求强制声明,那么下面的两个a是同一个变量:
a = 1
Sub xxx()
    a = 2   '这个a和外面那个a是同一个变量,递归调用时值不会被清零
End Sub

'而如果要求变量强制声明,那么下面两个a不是同一个变量:
Dim a
a = 1   '这个a是个全局变量
Sub xxx()
    Dim a
    a = 2   '这个a则是局部变量,只在xxx中有效,而且递归调用时会清零
End Sub

'如果既要强制声明变量,又想在递归调用时保持变量的值不被重新初始化,有两种方法:
'方法1、使用全局变量(即过程内部不要声明变量,直接调用外面的全局变量):
Dim a
a = 1   '这个a是个全局变量
Sub xxx()
    a = 2   '这个a和外面那个a是同一个变量,递归调用时值不会被清零
End Sub
'方法2、使用静态变量(推荐):
Sub xxx()
    Static a
    a = 2   '这个a是个静态变量,递归调用时值也会保持不变的
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式