sensel 发表于 2009-4-30 08:18:08

大家都是用什么办法判断变量是否为空?

本帖最后由 sensel 于 2009-4-30 12:53 编辑

If $vVariable = "" Then ...
我是用这样的语句。然而很不幸,今天被郁闷到了。
当$vVariable值为字符串时,它工作得很好。当$vVariable值为一个不等于0的整数时,它也能工作。
事情就发生在值为整数0时,这个表达式居然成立了。。。

大家都是用什么呢?StringLen计算长度?String转换为字符型?


注:问题解决。按3楼thesnow兄提示,此处应该用 == 来比较。

顽固不化 发表于 2009-4-30 08:32:39

本帖最后由 顽固不化 于 2009-4-30 08:38 编辑

先判断变量是数字还是串,然后再具体判断

If (IsString($vVariable) And $vVariable="") Or (IsNumber($vVariable) And $vVariable=0) Then

thesnow 发表于 2009-4-30 08:39:18


;x("")
;x("0")
;x(1)
;x("1")
x(0)
Func x($vVariable)
        If $vVariable = "" Then MsgBox(32,'1',$vVariable)
        If $vVariable == "" Then MsgBox(32,'2',$vVariable)
        If IsDeclared($vVariable) Then MsgBox(32,'3',$vVariable)
        If Eval($vVariable) = "" Then MsgBox(32,'4',$vVariable)
        If Eval($vVariable) == "" Then MsgBox(32,'5',$vVariable)
        If $vVariable Then MsgBox(32,'6',$vVariable)
EndFunc


依次注释测试结果,并写下心得方便后来人

jhun 发表于 2009-4-30 08:42:42

用CASE?
先判断是否=0,这样变量为0的话,就不会继续下面的CASE了

sensel 发表于 2009-4-30 10:02:14

3# thesnow


懂了,多谢!
看来必须用==的,我还一直认为==仅是对字符串进行区分大小写比较,观念落后啊。。。
至于心得,不敢写,怕误人子弟,呵呵

cmirt 发表于 2009-4-30 11:14:52

学习了啊!:face (35):
页: [1]
查看完整版本: 大家都是用什么办法判断变量是否为空?