作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个函数来循环访问注册页面上的一些信息。在循环中,我试图根据数组调用函数。我遇到的问题实际上是正确调用函数,因为我试图将变量合并为函数名称的一部分。
这是我的代码:
<cfscript>
fields = arraynew(1);
fields[1] = 'r_email';
fields[2] = 'r_uname';
fields[3] = 'r_pass';
for(i = 1; i lte arraylen(fields); i = i + 1)
{
func = fields[i].split('r_');
func = 'validate_#func[2]#(#fields[i]#)';
}
</cfscript>
<cfscript>
fields = arraynew(1);
fields[1] = 'r_email';
fields[2] = 'r_uname';
fields[3] = 'r_pass';
for(i = 1; i lte arraylen(fields); i = i + 1)
{
func = fields[i].split('r_');
func = 'validate_#func[2]#(#fields[i]#)';
writeoutput('#func#');
}
</cfscript>
writeoutput('#validate_#func[2]#(#fields[i]#)#');
writeoutput('#validate_email('email@site.com')#');
最佳答案
函数也是变量,所以你可以用同样的方式为数组、结构和作用域使用括号表示法,你可以使用它来访问动态变量名(以及动态函数名)
例如:
<cfloop index="Field" list="email,uname,pass">
<cfset Result = Variables['validate_'&Field]( Variables['r_'&Field] ) />
...
</cfloop>
<cfloop index="Field" list="email,uname,pass">
<cfset TmpFunc = Variables['validate_'&Field] />
<cfset Result = TmpFunc( Variables['r_'&Field] ) />
...
</cfloop>
variables
范围内,如果不是,则需要引用它们所在的范围。)
invoke
功能。较早版本的 CF 需要使用
cfinvoke
标签。
doSomething()[key]
有时很有用。)
关于function - 如何在 ColdFusion 中调用变量名作为函数名的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206828/
我是一名优秀的程序员,十分优秀!