1

何年もの間、複数の ColdFusion 環境で次のコードを使用してきました。

<cfthread 
    action                  = "run" 
    name                    = "#Local.cachedFilename#"
    src                     = "#Arguments.src#"
>

    <!--- Process  image --->
    <cfset Local.objImage = This.processImage(
        src                     = Arguments.src
    ) />

</cfthread>

今日、別の環境でコンポーネントを再利用するようになりましたがArguments.src、スレッド内に存在しないエラーに初めて遭遇しました。

少しグーグルで答えが返されました。スレッド内で属性スコープを使用する必要があります...したがって、 ProcessImage 呼び出しは のAttributes.src代わりにを使用しArguments.srcます。

これはうまくいきます。すべては順調です。しかし、私は混乱しています。
このコードは Railo 用に書きました。うまくいきました。CF10に移植したところ、問題なく動作しました。CF11で動かしました。うまくいきました。初めてエラーに遭遇したのは、CF10 を実行している特定のボックスでした。

だから私の質問は - CFThread内で引数スコープを使用できるようにする更新がどこかにあったのか、それとも特定の状況のセットがあるのか​​? 基本的に、属性スコープを使用することになっている場合、これが何年もうまく機能していたのはどうしてですか?!

4

1 に答える 1

0

CFThread はタグであり、関数呼び出しではありません。したがって、 はありますがattributes、 ではありませんarguments。Railo/Lucee は、何らかの理由で誤って をスコープ内でもattributes使用できるようにしているようです。argumentsAdobe の動作は正しい IMO であり、過去に Railo で運が良かっただけです。

于 2020-09-14T16:32:57.853 に答える