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