何らかの理由 (正しいか間違っているか) で、次のような関数宣言があります。
<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 によって提案されたように) 引数から型チェックを外すことが私の場合の最善の回避策ですか?