0
我正在使用ColdFusion和CFScript。目前,我已经没有问题,但注意到,我可以调用3种值:与CFscript调用值方法的差异
Value
'Value'
'#Value#'
它们之间有什么区别?提前致谢!
我正在使用ColdFusion和CFScript。目前,我已经没有问题,但注意到,我可以调用3种值:与CFscript调用值方法的差异
Value
'Value'
'#Value#'
它们之间有什么区别?提前致谢!
Value
一个名为Value
(不区分大小写)开始与VARIABLES
范围,然后通过其他范围进展(如URL
和FORM
)所示,在第一止动可变CF搜索找到变量。
'Value'
甲文字串以字符V
,a
,l
,u
和e
。
'#Value#'
其中Value
将被评估的字符串(CF evalautes #
之间的东西)。如果变量Value
(不区分大小写)是所谓的simple value
,则该变量将转换为字符串。否则,会抛出异常,因为非简单(即复杂)值不会自动转换为字符串。这基本上相当于'' & Value & ''
(字符串连接)。
Value = 'Hello World !!';
writeOutput(Value);
>> Hello World !!
writeOutput('Value');
>> Value
writeOutput('#Value#');
>> Hello World !!
writeOutput(evaluate('Value'));
>> Hello World !!
此外,不同于语法#1,即用引号括起来的变量*必须*也被封闭在井号。否则,CF引擎将不会将变量识别为要评估的内容。虽然合成有效,但通常不需要将CF变量括在引号中。另外,请记住上面的'evaluate()'示例仅供演示。由于大多数范围都是结构,因此您通常会使用关联数组符号,即'scopeName [“variableName”]'。另外,'评估()'是非常宽容的,并且在某些情况下可能会带来安全风险。 – Leigh
不错,感谢您的时间和这个有用的答案(真的是我一直在寻找):D – WiLLyxVKei