papapa314 发表于 2011-8-10 13:52:02

(已解决)自定义函数的return总是返回0

本帖最后由 papapa314 于 2011-8-10 21:55 编辑

准备在同个目录创建很多个文件,但可能存在文件名相同的情况。为了避免覆盖同名文件,写下如下函数,但return的值总为零,感觉很奇怪,不知道是哪里写错,望各位赐教。


Global $filechecknum=1

MsgBox(0,0,creatfilename("2"))

Func creatfilename($path)
       
       
        If FileExists($path) Then
               
                If FileExists($path&"-("&$filechecknum&")") Then
                        $filechecknum+=1
                        creatfilename($path)
                       
                Else
                        MsgBox(0,0,$path&"-("&$filechecknum&")");这里的值不为零,但return $path&"-("&$filechecknum&")"的值为0
                        Return $path&"-("&$filechecknum&")";问题出在这里,总是返回0
                EndIf
               
        Else
                $filechecknum=1
                Return $path
        EndIf

       
EndFunc

papapa314 发表于 2011-8-10 18:10:42

自顶一下,希望有人帮忙解决

pusofalse 发表于 2011-8-10 18:14:19

递归调用没有返回,12行改成 Return creatfilename($path)。
页: [1]
查看完整版本: (已解决)自定义函数的return总是返回0