变量的作用域 & 生命周期

一、作用域:变量能被访问到的代码范围,由声明位置决定

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(整个网站)。

二、生命周期(存活期):变量占用内存的时间段

  1. 脚本级变量Dim 声明开始,直到整个页面脚本执行完毕,变量销毁释放内存。页面加载完成,变量就消失,刷新页面会重新创建。
  2. 过程(局部)变量 函数被调用时创建;函数执行结束退出,局部变量立刻销毁。每次调用函数都会重新新建局部变量。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注