電話のかけ方の機能を動的にそのインスタンスを生成フロンを使用せず評価()?

StackOverflow https://stackoverflow.com/questions/84463

  •  01-07-2019
  •  | 
  •  

質問

例えばこういうことができるようにprogramaticallyヒットラインのコードは次のように関数名は動的に割り当てを使用せずに評価().以下のコードはもちろんなものは何たいと思います。

application.obj[funcName](argumentCollection=params)

なだけで呼び出機能を動的に利用があcfinvokeが、調査を実施しているのは、同じだということを保証するinstantiatesに関連するフロン機能のを使用することはできません以前インスタンスを生成フロン.

感謝

役に立ちましたか?

解決

に応じてドキュメント、いつものようになります:

<!--- Create the component instance. --->
<cfobject component="tellTime2" name="tellTimeObj">
<!--- Invoke the methods. --->
<cfinvoke component="#tellTimeObj#" method="getLocalTime" returnvariable="localTime">
<cfinvoke component="#tellTimeObj#" method="getUTCTime" returnvariable="UTCTime">

対応することができるでしょう単なる電話でのmethod="#myMethod#"を動的に呼び特定の機能です。

他のヒント

利用できるcfinvoke.かを指定するコンポーネントを設定します。

<cfinvoke method="application.#funcName#" argumentCollection="#params#">

またなんとかなる極めて類似した方法に用したいと思ってます。アクセスできる方法のオブジェクトの構文を使用し、あなただけのできない電話でも同時に行います。ただし、割り当て、温度可変できるのはそ

<!--- get the component (has methods 'sayHi' and a method 'sayHello') --->
<cfset myObj = createObject("component", "test_object")>

<!--- set the function that we want dynamically then call it (it's a two step process) --->
<cfset func = "sayHi">
<cfset funcInstance = myObj[func]>
<cfoutput>#funcInstance("Dave")#</cfoutput>

<cfset func = "sayHello">
<cfset funcInstance = myObj[func]>
<cfoutput>#funcInstance("Dave")#</cfoutput>

にCFML機能もオススメされたものの翻訳であります。このパンのように変更します。次の例では、コピーします関数名'foobar'と名前を変更できます"$fn"内に、同じオブジェクトです。したいのですがどうしたらよいでしなければな$fn().

funcName = 'foobar';    
application.obj.$fn = application.obj[funcName];
application.obj.$fn(argumentCollection=arguments);

のコンテキスト機能が必要になる場合がanyの値は、変数'または'this'の範囲のオブジェクトです。注意:このスレッドに対して安全のためのフロンインスタンスの共有のスコープ!

最速の方法ではBen Doomのです。そう思ってやってきました徹底して下さい。

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