どのようなCFのスクリプトです

のColdFusionについては、素晴らしいことの一つは、簡単に使用すると、tagbased構文です。を開いて、スクリプトブロックを閉じるか、何が現在作業している構文を覚えておく必要なく、CFMLおよびHTMLタグをまき散らすする能力を持つ素晴らしいものです。倍で、しかし、スクリプトの構文を使用する例が、いいだろう場合は、大量のデータをページ上の処理をしている。などのCFMLのタグベースの構文であるとしていい、数値演算処理最善のスクリプトです。CFScriptは、サーバー側は、『CFMLリファレンス』で動作する場合は、両方の長所:エレガント、タグベースの構文をするたびにそれを必要とするためのスクリプト言語が表現されと柔軟なスクリプトの構文を入力しない場合はユーザー定義関数は、後で説明されます。我々は『ColdFusion MXの機能のため、この資料のいずれかのCFScriptまたはCFMLの構文を使用してUDFを定義するためにそれらが含まれていません。この記事は、CFScriptの基礎を説明します。本質的には、CFScriptとしてではなく、タグのシンタックスのスクリプトのコードのブロックベースの治療には、ColdFusionの処理エンジンをベースに、命令の構文です。なぜ別の合併症を追加することによって、完全に良いことだ(『CFML)とめちゃくちゃ()スクリプト?これは、後者のコードを簡単にかつ迅速に処理します。次のスニペットを考えると、たとえば、1から10までのループは、実行中の合計は、各インデックスを追加する:


   
   
   
  

以下は、同じコードをCFScriptでのスクリプトの構文で表現されます:

 TheSum = 0;(ⅰ= 1;私はLTEの10;私=私+ 1)(
TheSum = TheSum + 1;) 

場合には、Java、JavaScript、またはCと経験を持ってCFScriptのは、あなたに精通している可能性のある変数をインクリメント+ +の構文をサポートしていません+ +よく見てみる?これCFScriptのほとんどをJavaScriptに同一である場合は、普通のは、JavaScriptを既視感がしています。 CFScriptの主変数をインスタンス化し、計算を実行するブロックが、彼らはあまりにも出力を生成することができます。例えば、を考えると、上記のコードスニペットは、次の拡張子:

 #TheSum# 

は、CFMLタグの一部でない場合は通常、何かのページに出力されます。 CFScriptはしかし、次の例に示すように、関数WriteOutputページ()の出力の名前を使用します:

 TheSum = 0;(ⅰ= 1;私はLTEの10;私=私+ 1)(TheSum = TheSum + 1;)WriteOutput(TheSum); 

WriteOutputのサーバーベースのJavaScriptのクライアント側と同じ側のdocument.write()メソッド()として考えてください。WriteOutputの違いは()とdocument.write()の『CFMLリファレンス』に比べてCFScriptでのさまざまな考え方を示しています。ではなく、それには、テキストだけ"であることが、"CFMLでは、CFScriptの出力をテキストに指示する必要があります。これCFScriptステートメント終了セミコロンのに注意して使用します。 CFScriptではJavaScriptがセミコロンで終端に対して寛容であることを忘れるし、ColdFusionでエラーがスローされます。その場合に慣れるのにCFScriptの中括弧の使用である必要があるもう1つ。中括弧CFScriptコードの方法は、オープンタグと終了タグと同様のブロックを囲むが、その使用が実際にもっと重要なのCFMLコードのブロックを囲んでいます。単純なif CFScriptで構築するよう以下のとおり:

 (このEQは)doThis場合();他のdoThat(); 

上記のスニペットのエラーフリー動作しますが、その場合doThis後に別のステートメントを追加する必要があると()は、次の例のように:

(このEQは)doThis場合(); doSomeOtherThingToo();他のdoThat(); 

これに対応する場合、句を付けずにelse節を見ては、ColdFusion、エラーがスローされます。これは、doSomeOtherThingToo()ステートメントの後の文の継続と見なされ、これが発生if文()ステートメントは、doThis実行を終了します。のCFScriptの両方のステートメントを実行する場合、テストはTRUEにすると中括弧で囲む必要があります次のとおり:

 (このEQは)(doThis場合(); doSomeOtherThingToo();)他のdoThat(); 

実際には、ベストプラクティスは、常に次の例にするかどうかが必要か否かは、中括弧に関係なく、として含まれています:

 (このEQは)(doThis場合(); doSomeOtherThingToo();)他(doThat();) 

なぜ?ため、ときに、既存の場合、テストする別の文を追加しようとしているか分からない。我々は、我々の場合は、単に私たちは、エンクロージャのメカニズムに注意を払っていないの構築、既存の囲まれていないため、2番目のステートメントを追加して、初期段階でエラーを投げたどのように何度も言うことはできません。もしあなたがいつもで囲むと、エラーをスローすることはありません。同じような筐体を必要と任意の言語にも当てはまります。すべてのCFScriptコードCFScriptのタグの間には、次の例に示すように含まれています:

...通常のCFMLコードをここに...  ... CFScriptのコードをここに行く ...通常のCFMLコードをここに...

注意してcfscriptブロックの内容は、完全なステートメントが必要です。あなたは、例えば、次の操作をすることができます:

 (myVarがgtのyourVar)の場合(
私のテキストをここに。 

工事のそのタイプのいくつかの他のスクリプト言語で、有効ではないのCFScriptインチCFScriptの操作を自己しなければならない単一のコードブロック内に含まれている、以下のとおり:

場合(myVarがgtのyourVar)(WriteOutput("私のテキストです。");) 

単一のColdFusionでのテンプレートが、いくつかのCFScriptをブロックすることができます各cfscriptブロックは、自己の実行可能コードのブロック立っている必要があります。次のとおりCFScriptで簡単操作、変数の設定です:

がmyVar = 1; 

でCFScriptのないcfsetタグが必要であり、ステートメントは、変数の設定は、セミコロンで終わります。今すぐmyVarに使用することができるだけでは、他のColdFusion変数である。次のように注意して、CFScriptは、定期的な『CFMLリファレンス』の間の任意の変数を共有することができます:

がmyVar = myVarに+ 1; yourVar = 3;  #yourVar + myVarに# 

現在の設定と変数のスコープ内の変数を読み取り、のいずれかに限定されていません。任意の変数は、タグを使ってのCFMLベースもCFScriptでのスクリプトの構文を使用して設定することができます設定することができます。場合cfscriptの構築と正確には、『CFMLリファレンス』の対応、CFIFにします。ColdFusionと同じように動作状態を評価し、依存する文かどうかの条件がtrueまたはfalseに基づいて実行されます。比較は、if構文のCFMLとCFScript次:

『CFMLリファレンス』:

... trueの場合は実行... 
 CFScriptは:
(myVarがgtのyourVar)の場合(... trueの場合は実行...)

CFScriptでも、CFELSEに相当するものは、次の例に示すように:

(myVarがgtのyourVar)の場合(... trueの場合は...)他の実行(... falseの場合は実行...)

次のようにまたをCFELSEIFにCFScriptで、同等の検索:

(myVarがgtのyourVar)の場合(... trueの場合は...)以外を実行する場合(myVarにEQをyourVar)(... trueの場合は...)他の実行(...もしすべての条件がfalseを実行...)
記事ヨハンナシュミット氏が提出した


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: どのようなCFのスクリプト"自動ソフトウェアによって翻訳された場合、この記事は、"。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 217 users browsing the articles directory   


  

|