質問

CFFUNCTYタグの直後に呼び出されたときのこれら2つのコードブロックの違いは何ですか:

<cfparam name="bork_bork_bork" default="false">

<cfargument name="bork_bork_bork" required="false" default="false">
.

役に立ちましたか?

解決

<cfparam>は、デフォルトの属性と共に使用されると、変数が確実に存在することを確認します。範囲が指定されていないため、bork_bork_borkVariablesスコープに入れられています。

<cfargument>は関数への引数を渡すために使用されます。これらの値はArgumentsスコープに格納されています。arguments.bork_bork_borkを使用して値にアクセスします。

arguments.bork_bork_borkbork_bork_borkは同じではないことに注意してください。argumentsの範囲は関数内でのみです。もう1つはVariablesスコープに格納されており、ページ上のどこにでも有効になります(私はそれをコーディングすることはお勧めしません。)

他のヒント

cfparamは関数と関係ありません。param /引数がほとんどの言語で交換可能な単語であることを考えると、これが混乱していることがわかります。ユーザー定義関数がバージョン5までCFに追加されていないので、変数を初期化する方法としてCFPARAMを使用する際の競合はありません。さらに、CFPARAMタグはおそらく廃止された関数からその名前を描きました。

cfparamは、変数がまだ存在しない場合は、任意の変数のデフォルトを設定する方法です。次のことをするのはショートカットです。

<cfif NOT isDefined('bork_bork_bork')>
    <cfset bork_bork_bork = 'myDefaultSetting'>
</cfif>
.

cfargumentは、CFC関数またはユーザー定義関数に渡される引数を定義するための開始タグの後にのみ使用可能です。

私が思い出すことから、cffunctionタグとcfargumentタグの間には何も存在できませんので、cffunctionタグの直後に表示されなければなりません。

関数内からの引数scope {arguments.bork_bork_bork}を介してcfargumentにアクセスするか、または配列{引数 1 }

cfparamは、cfargumentの代わりに要求に応じて変数が使用可能になることを確認します。さらに読み取りチェックアウトするために:

cfargument

アレイとしての引数スコープを使用する

cffunctionタグを使用した機能の定義

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top