option explicit 导致的asp循环嵌套问题
在一次编程使用中要进行自身循环嵌套比如目录结构展开这种,如果使用了optionexplicit这个强制变量声明语句,程序就不能实现循环,去掉就可以,怪哉...
在一次编程使用中要进行自身循环嵌套比如目录结构展开这种,如果使用了option explicit这个强制变量声明语句,程序就不能实现循环,去掉就可以,怪哉
展开
1个回答
展开全部
这就涉及到变量是局部变量还是全局变量的问题了,我还是举个例子你应该一看就明白:
'如果变量不要求强制声明,那么下面的两个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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询