获取变量名称Classic ASP

时间:2012-01-27 14:50:47

标签: asp-classic vbscript

我为Classic ASP(VBScript)+ firephp编写了一个开源调试类,想知道是否可以获取传递给函数的变量的名称?我已经搜索过,但似乎无法找到任何技巧。

实施例

代码:

    log myVariable

输出:

    myVariable: "some value"

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

我假设以下代码片段描述了您的场景:

Function myLog(myArg)
    ...
End Function

Dim xyz, abc
xyz = "some value"
abc = "some value"
myLog xyz
myLog abc

您希望您的函数知道变量 xyz abc 是否用于调用您的函数?

答案是肯定的,原因有两个。一种这种类型的参数调用是“按值调用”,即使它不是,在vbscript中仍然没有机制,因为它知道你传递它的原始变量名。

您考虑使用Dictionary Object来代替变量:

<%
Dim cars 
Set cars = CreateObject("Scripting.Dictionary")
cars.Add "a", "Alvis" 
cars.Add "b", "Buick"
cars.Add "c", "Cadillac"
Response.Write "The value corresponding to the key 'b' is " & cars.Item("b") 
%>

答案 1 :(得分:1)

您可以按照以下步骤操作

  1. 为要打印名称的每个变量创建一个新变量 对于每个变量
  2. 将所需的变量名称保存为字符串 相关的新变量
  3. 将您的代码封装在具有的函数中 两个论点
  4. 这是一个例子,我使用了名为&#34; move.bat&#34;的批处理文件。运行VBS:

    <form method="POST" action="{{ action('wishlist@deleteProduct', $l->id) }}">
    {!! csrf_field() !!}
     <input type="hidden" name="_method" value="delete">
     <input type="hidden" name="id" value="{{$l->id}}">
    <button type="submit" class="btn btn-danger">Remove item</button>
    

    结果如下:

    Dim sFoldervarName
    sFoldervarName = "sfolder"
    Dim sFolder
    sFolder = "pippoplutopaperino"
    
    call varnamefunc(sFolder, sFoldervarName)
    
    Sub varnamefunc(arg1, arg2)
        LF = chr(10)
        Wscript.Echo("your variable name is:" + arg2 + LF + "your variable value is: " + arg1)
    End Sub
    

    通过执行此操作,您的函数将返回变量的名称以及Variable值。 希望这可以帮助! 问候。

答案 2 :(得分:1)

如果您稍微修改了函数的输入,则可以获得结果:

hello = "how do you do"
log "hello"

function log(x)
  response.write x & ":" & eval(x)
end function

这是使用eval函数将字符串“hello”转换为变量hello。