QTP中function中变量作用域的问题
首先请看代码dim sety
sety="函数外部值"
function setstring(setvalue)
msgbox(setvalue)
msgbox(sety)
end function
call setstring("传递的值")
运行后发现,msgbox(sety)也能输出 "函数外部值"
难道QTP中的函数可以不需要传递值就可以在函数内部使用?这怎么和我记忆中老师说的变量作用域不一样呢.. 因为你定义的是全局变量,所以...
回复 2# 的帖子
全局变量不是需要特别申明么我只是用普通的声明方式呀. 因为你的变量声明在Function外,所以它就是全局变量了。在Function内,就是局部变量。
回复 3# 的帖子
en 需要特别声明:dim sety '这是全局变量。。。呵呵。
回复 1# 的帖子
我觉得这里将它说成是全局变量有些不妥准确的说这个函数的作用域贯穿在它所处的ACTION中,而function的作用域也在该ACTION中,所以也适合该function
全局变量是针对整个project而言的
[ 本帖最后由 hk_ella 于 2009-6-1 09:52 编辑 ]
回复 6# 的帖子
感觉6#说的这个比较合理,因为实际测试的结果是action内部的函数变量的值不需要传递能使用. 原帖由 onlonely 于 2009-5-31 18:19 发表 http://bbs.51testing.com/images/common/back.gif
感觉6#说的这个比较合理,
因为实际测试的结果是action内部的函数变量的值不需要传递能使用.
你要查查对于Action之间传值的文章。如果在一个Action中,在Function外定义的变量,就是全局变量了。 VBS是弱类型语言 在使用变量之前可以不做声明而直接赋值 同时同意6楼的看法
页:
[1]