2016-07-23 6 views
0

ColdFusionとCFScriptを使用しています。現時点では私は何の問題をしたんが、私は3つの方法で値を呼び出すことができることに気づい:CFscript呼び出し値メソッドとの相違

  1. Value
  2. 'Value'
  3. '#Value#'

それらの間の違いは何ですか?前もって感謝します! Value(大文字と小文字を区別しない)という変数VARIABLESスコープで開始し、次いで(URLFORMなど)他のスコープを介して進行、最初に停止する

答えて

2
  1. Value

CF検索変数が見つかりました。

  • 'Value'
  • 文字Valueと文字列リテラル。

  • '#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 !! 
    
    +0

    、構文#1とは異なり、*引用符で囲まれている変数は*また、シャープ記号で囲まなければなりません。そうしないと、CFエンジンは変数を評価するものとして認識しません。構文的には有効ですが、通常はCF変数を引用符で囲む必要はありません。また、上記の 'evaluate()'の例はデモンストレーションのためだけのものです。ほとんどのスコープは構造体なので、通常は、代わりに 'scopeName [" variableName "]'という連想配列表記法を使用します。さらに、 'evaluate()'は非常に許容的であり、場合によってはセキュリティリスクを引き起こす可能性があります。 – Leigh

    +0

    あなたの時間とこの有益な答えに感謝しています(本当に私が探していたものです):D – WiLLyxVKei

    関連する問題