2014-07-07 6 views
2

업데이트 : 이것은 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) 
%> 

의심의 여지가 있습니다. 어떻게 기능을 호출 할 수 있습니까? Response.Write Value1Response.Write Value2을 사용하면 값을 얻을 수 있지만 먼저 매개 변수를 전달해야합니다. ReturnTwoValues(Now())과 같은 것입니다. 그렇지만 어떻게하면 첫 번째와 두 번째 값을 얻을 수 있습니까?


의 orginal 질문 :

<% 
    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 
%> 

나는이 방법을 수행 할 수 있습니다 :이 의사 기능을 가지고 Variable1Variable2에서 값을 반환 할 수 있도록하고 싶습니다

?

+0

간단합니다. 배열을 반환하므로 원하는 요소를 'Respo Response.Write (ReturnTwoValues ​​(Now() (0))'와 같이 nse.Write()'는 배열에서 첫 번째 요소를 반환합니다. – Lankymart

답변

3

패스를 다시 배열 :

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" 

또는 변수가 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" 
+0

첫 번째 예제를 사용하여 매개 변수를 전달하는 방법은 무엇입니까? – Khrys

+0

일반적인 방법으로 전달하십시오. '함수 ReturnTwoValues ​​(Date_Field)'. 그런 다음'a = ReturnTwoValues ​​(# 7/7/2014 #) '또는 다른 날짜 값으로 호출하십시오. – Bond

+0

하지만 매개 변수로 어떻게 응답합니까? 보통'Response.Write ReturnTwoValues ​​(someParam)'을 할 것입니다. 그러나 내가 반환 할 가치가 2 개있어 어떻게 얻을 수 있습니까? – Khrys

관련 문제