1

何らかの理由 (正しいか間違っているか) で、次のような関数宣言があります。

<cffunction name="findaccount" access="public" returntype="struct">
    <cfargument name="roles" type="numeric" required="true" default="1">
    ...
</cffunction>

次に、関数はによって呼び出されます

<cfinvoke method="findaccount" returnvariable="stAccountDetails">
    <cfinvokeargument name="roles" value="1,2">
</cfinvoke>

数値を期待する関数にリストを渡すという当初の意図に関係なく、このコードは CF9 で長い間機能してきました。最近、CF11 にアップグレードすることにしましたが、コードは次の例外をスローします。

Detail: If the component name is specified as a type of this argument, it is possible that either a definition file for the component cannot be found or is not accessible. 
Message: The ROLES argument passed to the findaccount function is not of type numeric. 

検索すると、ここで同様の問題が見つかりました。私の質問は次のとおりです: このような多くの呼び出しがあることを考えると、(Adam Cameron によって提案されたように) 引数から型チェックを外すことが私の場合の最善の回避策ですか?

4

1 に答える 1