一、作用域:变量能被访问到的代码范围,由声明位置决定
1. 过程级变量(局部变量)
在 Sub / Function 函数内部,用 Dim 声明的变量
- 仅当前函数内部可以读写
- 函数外面看不到、不能访问这个变量
- 同名也不会和外部变量冲突,本质是两个独立变量
Dim X '脚本级变量 X = 1000
Sub ShowX
Dim X '局部变量,和外面的X不是同一个
X = 2000
End Sub
Call ShowX
Response.Write X '输出1000,外部X没变
Code language: PHP (php)
2. 脚本级变量(页面全局变量)
写在所有 Sub/Function 外面,页面顶层用 Dim 声明
- 当前整个ASP页面所有函数都能访问、修改
- 函数内不加 Dim直接赋值,就会修改这个全局变量
Dim X '脚本级变量 X = 1000
Sub ShowX
X = 2000 '没有 Dim,直接操作页面全局X
End Sub
Call ShowX
Response.Write X '输出2000,全局X被修改
Code language: PHP (php)
重点:函数内写 Dim X → 新建局部变量;不写 Dim X → 使用页面全局变量
脚本级变量只在当前这一个ASP页面生效。跨页面共享数据要用
Session(用户级别)、Application(整个网站)。
二、生命周期(存活期):变量占用内存的时间段
- 脚本级变量 从
Dim声明开始,直到整个页面脚本执行完毕,变量销毁释放内存。页面加载完成,变量就消失,刷新页面会重新创建。 - 过程(局部)变量 函数被调用时创建;函数执行结束退出,局部变量立刻销毁。每次调用函数都会重新新建局部变量。