日期:2014-05-17  浏览次数:20738 次

ASP的超级BUG,寻求解释!
请试运行下面的代码,你会得到一个超出想象的结果,并解释一下这是为什么?

<%
dim   a,b,c
a   =   request.form( "dd ")
b   =   0
c   =   " "
if   a   =   c   then   response.write   " <br> A=B "
if   a   =   b   then   response.write   " <br> A=C "
if   b   =   c   then   response.write   " <br> B=C "
%>

------解决方案--------------------
asp会把接收到的a的值根据已经定义的变量的类型进行转换

b = 0 'asp会认为b是数字型
c = " " 'asp会认为c是字符型


a = c 的时候a会变成数字型
a = b 的时候a会变成字符型
------解决方案--------------------
请楼主弄清楚概念。就算是BUG也应该是VBScript的BUG。
而且,作为解释型的语言,弱类型无可厚非。处理这种
非同种类型的数据比较,只要他有稳定的数据转换方法,
就应该认为是可以的。