ColdFusion: isdefined, но выдает неопределенную ошибку - PullRequest
0 голосов
/ 21 декабря 2011
<cfif ISDEFINED("CALLER.VARIABLES.STRFUNCNAME")>
  <cfparam name="strFuncName" default="#EVALUATE(CALLER.VARIABLES.STRFUNCNAME)#" />
<cfelse>
  <cfparam name="strFuncName" default="" />
</cfif>

Этот код находится в одном из наших пользовательских тегов и выдает ошибку в строке EVALUATE. Я не уверен, как это вообще возможно.

Я могу сделать это со страницы вызова, чтобы увидеть, что переменная определена:

<cfset VARIABLES.strFuncName = "strFuncName#intModule#"> <!--- intModule = 1188 --->
#VARIABLES.strFuncName#: #EVALUATE(VARIABLES.strFuncName)# <!--- strFuncName1188: Main --->
<CF_CUSTOMTAG> <!--- Tell me Variable strFuncName1188 is undefined. --->

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Измените свой код на это:

<cfparam name="strFuncName" default="#EVALUATE('CALLER.VARIABLES.STRFUNCNAME')#" />
0 голосов
/ 21 декабря 2011

Наконец-то разобрался…

CALLER.VARIABLES.STRFUNCNAME возвращал только "strFuncName ####". Таким образом, выполняется оценка того, что она ищет переменную «strFuncName ####» в текущей области обработки, а не в CALLER.

Я изменил cfparam на следующее, и он начал работать:

<cfparam name="strFuncName" default="#EVALUATE("CALLER." & CALLER.VARIABLES.STRFUNCNAME)#" />
...