关于在代码分析过程中遇到的错误,以转换为 ColdFusion 2016



在我们的代码库上使用ColdFusion 2016的代码分析器后,它给我们以下错误。

否 _ [B5O] 写入日志函数使用不正确。WRITELOG 函数不能在替换语句中使用。

<cfoutput>#writeLog("DS001", "#This.Name#", "SDC601", ArrayNew(1))#</cfoutput>

此错误是什么意思? 我需要做什么才能解决问题?

我们正在从 ColdFusion 7 迁移到 ColdFusion 2016。

如何/为什么在<cfoutput>标签中使用<cfscript>语法?如果您的代码在<cfscript>标记内,则<cfoutput>标记将无效。无论如何,调用writelog<cflog>函数时不需要这些标记。这让我相信您共享的代码不是实际代码。

函数调用的值似乎不正确。也不确定它在 ColdFusion 7 中是如何工作的(同样,这可能不是实际代码的示例(。以下是 writelog 函数文档的摘录:

函数语法

WriteLog (text, type, application, file, log)

对于位置表示法,必须以与语法中提供的完全相同的方式遵循序列。如果未提供其中一个参数,请改用空字符串。这不适用于布尔值,即使必须跳过布尔值,也必须为其提供适当的值。

您共享的代码是:

writeLog("DS001", "#This.Name#", "SDC601", ArrayNew(1))

这意味着您使用的是位置表示法,而 ColdFusion 将其解释为:

text        = "DS001"
type        = "#This.Name#"
application = "SDC601"
file        = ArrayNew(1)
log         = 

使用该语法时,需要修改代码以正确的顺序传递值。而且我不确定您为什么要尝试将空数组传递到函数中。所有属性都不接受数组。

最新更新