从一个函数返回多个值

Khr*_*rys 3 vbscript function asp-classic

更新:这是 WIP 功能。

<%
    Function ReturnTwoValues(Data)

        If Data= Now() Then
            Var1= "ABC"
            Var2= "000"
        Else
            Var1= "CDE"
            Var2= "111"
        End If

        ReturnTwoValues = Array(Var1, Var2)

    End Function

    a = ReturnTwoValues(Data)
    Value1= a(0)
    Value2= a(1)
%>
Run Code Online (Sandbox Code Playgroud)

我现在的疑问是:如何调用该函数?如果我这样做Response.Write Value1并且Response.Write Value2我可以获得该值,但我需要先传递参数。类似的东西ReturnTwoValues(Now()),但如果我这样做,我怎么能得到第一个和第二个值?


原始问题:

我有这个伪函数,希望能够从Variable1and返回值Variable2

<%
    Today= Now()

    Function TellsMeTheTime(Date_Field)
        If IsNull(Date_Field) = False Or Date_Field <> "" Then
            DaysAmount= DateDiff("d", Date_Field, Today)
            Select Case True
                Case DaysAmount = 0
                    Variable1 = "warning"
                    Variable2 = "text1"
                Case DaysAmount > 1
                    Variable1 = "danger"
                    Variable2 = "text2 " & DaysAmount & " text3"
                Case DaysAmount = -1
                    Variable1 = "warning"
                    Variable2 = "text4"
                Case DaysAmount = -2, -3, -4, -5, -6, -7
                    Variable1 = "warning"
                    Variable2 = "text5 " & Right(DaysAmount, Len(DaysAmount) - 1) & " text6"
                Case DaysAmount <= -8
                    Variable1 = "success"
                    Variable2 = "text7 " & Right(DaysAmount, Len(DaysAmount) - 1) & " text8"
                Case DaysAmount = ""
                    Variable1 = "danger"
                    Variable2 = "text9 " & DaysAmount & " text10"
                Case Else
                    Variable1 = "warning"
                    Variable2 = "text11 " & Right(DaysAmount, Len(DaysAmount) - 1) & " text12"
            End Select
        Else
            Variable1 = "danger"
            Variable2 = "text12"
        End If
    End Function
%>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Bon*_*ond 5

传回一个数组:

Function ReturnTwoValues(Date_Field)
    ' Do some date testing using Date_Field and then return the proper values...
    ReturnTwoValues = Array("hello", "world")
End Function

a = ReturnTwoValues(#7/7/2014#)
WScript.Echo a(0)    ' ==> "hello"
WScript.Echo a(1)    ' ==> "world"
Run Code Online (Sandbox Code Playgroud)

或者利用变量在 VBScript 中通过引用传递的事实:

Sub ModifyTwoValues(Date_Field, returnOne, returnTwo)
    ' Do some date testing using Date_Field and then return the proper values...
    returnOne = "hello"
    returnTwo = "world"
End Sub

ModifyTwoValues #7/7/2014#, var1, var2
WScript.Echo var1    ' ==> "hello"
WScript.Echo var2    ' ==> "world"
Run Code Online (Sandbox Code Playgroud)