我正在开发基于Railo4的应用程序,并且遇到了一个有趣的问题。就ColdFusion代码而言,我在这里没有做任何新的事情。只需获取一些字符串,在需要的地方连接,然后返回一个字符串。
<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)第二个是
the function customBuildURL has an invalid return value , can't cast Object type [url] to a value of type [string]
,返回url
变量。如您所见,我在这里没有做任何详细说明。只需设置一些字符串,将它们串联起来然后返回即可。我看不到在哪里创建“对象”并将其转换为字符串。我再次检查了
&=
运算符的使用,这似乎不是问题,因为如果我执行url = url & "." & ARGUMENTS.item
,则会报告相同的错误。有任何想法吗?
最佳答案
Url
是ColdFusion中的保留字,因此,即使您在函数中对其进行了更改,它仍会选择url变量的实际结构。
这是ColdFusion中reserved words的完整列表