1
<cfparam name="airInfo.leaving"     type="struct" default="#structNew()#">
<cfparam name="flightInfo.depart"   type="string" default="departing">
<cfparam name="flightInfo.arrive"   type="string" default="arriving">

<cfset flightInfo   = airInfo.leaving>
<cfset fromInfo     = flightInfo.depart>
<cfset arriveInfo   = flightInfo.arrive>

<cfdump var="#flightInfo#">

これはうまくいくはずです...私は思いますが、flightInfoで出発が未定義であるというエラーが表示され続けます。structKeyExists()を使用できることはわかっていますが、これはより大きなアプリケーションのスニペットにすぎません。そのマナーのすべての変数をチェックすることはできず、実際にはcfparamを使用する必要があります。私はこれから何が欠けていますか?

4

1 に答える 1

4

おそらく、2番目と3番目のcfparamsは、flighInfo.departとflightInfo.arriveではなく、airInfo.departとairInfo.arriveを設定する必要があります。

編集:flightInfo変数は、最初のcfparamで作成した空の構造体によって上書きされるため、未定義のエラーが発生します。

出発と到着でデフォルトのflightInfoを使用する場合は、airInfo.leaving.departとairInfo.leaving.arriveのようにairInfo.leavingでこれらの変数を設定してから、airInfo.leavingをflightInfoに割り当てます。

于 2012-07-02T15:39:37.413 に答える