我正在構建一個基於Railo4的應用程序,並且遇到了一個有趣的問題。就ColdFusion代碼而言,我在這裏沒有做任何新的事情。只需要一些字符串,在需要的地方連接起來,然後返回一個字符串。Railo4字符串串聯問題
<cffunction name="customBuildURL" access="public" returntype="string">
<cfargument name="subsystem" type="string" required="true" />
<cfargument name="section" type="string" required="true" />
<cfargument name="item" type="string" required="true" />
<cfargument name="args" type="string" required="true" />
<cfset var url = "index.cfm?action=" & ARGUMENTS.subsystem & ":" & ARGUMENTS.section />
<cfif Ucase(ARGUMENTS.item) NEQ "DEFAULT" >
<cfset url &= "." & ARGUMENTS.item />
</cfif>
<cfif ARGUMENTS.args NEQ "" >
<cfset url &= ARGUMENTS.args />
</cfif>
<cfreturn url />
</cffunction>
但是,我收到兩個不尋常的錯誤。
1)第一個是:Can't cast Complex Object Type Struct to String
和被報告爲以下兩行:
<cfset url &= "." & ARGUMENTS.item />
<cfset url &= ARGUMENTS.args />
2)第二個是在所述url
變量的返回the function customBuildURL has an invalid return value , can't cast Object type [url] to a value of type [string]
。
正如你所看到的,我在這裏沒有做任何詳細說明。只需設置一些字符串,連接它們然後返回。我沒有看到'Object'正在被創建並被投射爲一個字符串。我再次檢查了&=
操作符的使用情況,這看起來不是問題,因爲如果我執行url = url & "." & ARGUMENTS.item
,則會報告相同的錯誤。
任何想法?
如果使用url以外的變量會發生什麼?我假設它仍在拉動url結構 –
修復了它!我希望你能發佈這個答案,我可以給你信任。我盯着這幾個小時,但沒有意識到我犯了一個新錯誤。 URL範圍與我的變量衝突! D'OH!無論如何,將'url'變量改爲'actionURL',現在一切正常!謝謝馬特!當你盯着它太長時間時,有時候需要額外的眼睛。 –
沒問題。我發佈了這個答案。 –