我已经为传统ASP(VBScript)+ firephp编写了一个开源调试类,并想知道是否可以获取已传递给函数的变量的名称?我已经搜索,但似乎无法找到任何技巧来做到这一点。获取变量名称经典ASP
例
代码:
log myVariable
输出:
myVariable: "some value"
任何想法?
我已经为传统ASP(VBScript)+ firephp编写了一个开源调试类,并想知道是否可以获取已传递给函数的变量的名称?我已经搜索,但似乎无法找到任何技巧来做到这一点。获取变量名称经典ASP
例
代码:
log myVariable
输出:
myVariable: "some value"
任何想法?
我假设下面的代码片段说明您的情况:
而且你希望你的函数知道变量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")
%>
是啊,这就是我的想法。我只是想尽可能快速和简单地使日志记录功能。我仍然可以“记录”myvalue,“myvalue”只是稍微让人烦恼;) – 2012-01-27 16:37:58
你可以按照以下步骤
下面是一个例子的功能,我使用了名为“move.bat”一个批处理文件来运行VBS:
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
这里是结果:
c:\Batch_DEV>move.bat
your variable name is:sfolder
your variable value is: pippoplutopaperino
c:\Batch_DEV>
通过这样做,您的函数将返回变量的名称以及变量值。 希望这有助于! 此致敬礼。
如果修改输入到功能位,就可以实现你的结果:
hello = "how do you do"
log "hello"
function log(x)
response.write x & ":" & eval(x)
end function
这是使用eval函数,将你的字符串“hello”翻译成变量打招呼。
不用怕,你将不得不''登录“myVariable”,myVariable' – 2012-01-27 14:59:32