我为Classic ASP(VBScript)+ firephp编写了一个开源调试类,想知道是否可以获取传递给函数的变量的名称?我已经搜索过,但似乎无法找到任何技巧。
实施例
代码:
log myVariable
输出:
myVariable: "some value"
有什么想法吗?
答案 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)
您可以按照以下步骤操作
这是一个例子,我使用了名为&#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。