Classic ASP动态数组脚本报错求助:新手询问错误原因
Classic ASP数组报错的原因与解决方案
嘿,作为摸过Classic ASP好多年的老玩家,我一眼就瞅出你代码里的问题啦!
你这段代码报错的核心原因是:动态数组声明后没有分配存储空间。在VBScript(Classic ASP默认脚本语言)里,当你用Dim prueba()声明一个动态数组时,只是告诉系统“我要一个数组”,但系统还不知道这个数组能装多少元素,直接给prueba(i)赋值肯定会触发“下标越界”或者“未初始化数组”的错误。
给你两种简单的修复方案:
方案1:先ReDim初始化动态数组大小
先通过ReDim指定数组的下标范围,再进行赋值:
<% Dim i Dim prueba() ReDim prueba(9) ' 下标从0到9,正好容纳10个元素 for i=0 to 9 prueba(i) = i next %>
这里ReDim prueba(9)的意思是让数组拥有10个元素(下标0到9),刚好匹配你的循环范围。
方案2:直接声明固定大小的数组
如果你确定数组的大小不会改变,直接声明固定大小的数组更省心:
<% Dim i Dim prueba(9) ' 直接指定数组下标范围0到9 for i=0 to 9 prueba(i) = i next %>
小扩展:如果后续需要动态调整数组大小,还可以用ReDim Preserve来保留数组里已有的数据,比如ReDim Preserve prueba(19)就能把数组扩容到20个元素,同时保留原来的0-9的数值~
内容的提问来源于stack exchange,提问作者sgb004
相关产品推荐
相关产品推荐

