2016-04-22 4 views
1

こんにちは、coldfusionに関数が存在するかどうかを確認する方法があります。それはエラー機能を定義していない投げている関数が存在するかどうかのチェックColdfusion

+5

あなたが建てのColdFusionについて話していますあなたがUDFについて話しているのですか、あるいはあなたはCFCの方法について話していますか?コード内に関数が存在しない場合は、関数を呼び出さないでください。 –

+2

..これが私たちがコードとエラーメッセージを見る必要がある理由です。 *通常は(必ずしもそうではありませんが)あなたが描いていることは起こりません。もしそうなら、バンドアシストを適用するのではなく、原因を見つけて修正する方がいいです。 – Leigh

答えて

3

私はisDefined('functionname')と思う。だから、行うことができます。

<cfif isDefined('functionname')> 
    <cfset functionname() /> 
</cfif> 

を、それはあなたも行うことができます例えばobjという名前のオブジェクトの潜在的な方法だ場合:

<cfif structKeyExists(obj,'functionname')> 
    <cfset obj.functionname() /> 
</cfif> 

それとも

<cfif isDefined('obj.functionname')> 
    <cfset obj.functionname() /> 
</cfif> 
+0

私はisDefinedを使用しようとします.... –

+0

ありがとうございました... –

+0

上記のコードは、異なるスコープで指定された変数名(特に関数ではありません)の存在をチェックします。指定された名前の関数がそれに基づいて存在するかどうかはわかりません。他のスコープで(チェックしている)関数と同じ名前の変数がある場合、上記のトリックは失敗します。だから慎重にしてください。 – Pankaj

関連する問題