私はオブジェクトを最初に作成した後、initという関数を呼び出します。cffunction:最初の引数に基づく2番目の引数
<cfset SESSION.objWatchlist = createObject("component", "path") />
<cfset SESSION.objWatchlist.init(session.addressid) />
これまでのところとても良いです。 init関数は次のようになります:
<cffunction name="init" access="remote" output="false">
<cfargument name="addressID" type="numeric" required="true" />
<cfset THIS.ADDRESSID = arguments.addressID />
<cfset THIS.WATCHLIST = arrayNew(1) />
<cfset initWatchlistArray() />
<cfreturn this />
</cffunction>
今、別の引数を関数に追加します。 「タグがネストされている必要があり、私はエラーを取得する
<cffunction name="init" access="remote" output="false">
<cfargument name="typeOfID" type="string" required="true" />
<cfif arguments.typeOfID eq "addressid">
<cfargument name="addressID" type="numeric" required="true" />
<cfset THIS.ADDRESSID = arguments.addressID />
<cfelseif arguments.typeOfID eq "sessionid">
<cfargument name="sessionID" type="string" required="true" />
<cfset THIS.SESSIONID = arguments.sessionID />
</cfif>
<cfset THIS.WATCHLIST = arrayNew(1) />
<cfset initWatchlistArray() />
<cfreturn this />
</cffunction>
しかし毎回:
<cfset SESSION.objWatchlist.init("addressid", session.addressid) />
と
<cfset SESSION.objWatchlist.init("sessionid", session.sessionid) />
私はのcffunctionにいくつかの新しい行を追加します。私はこのようにそれを呼び出します。 CFFUNCTIONタグの内部にあります "。
今私の質問は、2番目の引数が最初のものに基づいている関数を書くことができますか?
これも可能ですか?
ありがとうございます。私はそのように見える解決策を発見した終わりに
もし 'this'スコープに変数がある場合は、それらを関数の外に宣言してください。関数内で値を与えることができます。実際の質問に関しては、すべての引数を宣言し、そのロジックを後で関数に転送します。 –
@ダンブルクック:あなたの答えをありがとう。あなたはそのための例がありますか? – Wacki
ビットオフトピックです。この種のコードは ''にする必要があります。読むのがはるかに簡単です。 –