2012-05-30 61 views
0

当使用null元素调用ArrayLen时,会引发错误。你如何让它返回0?由于ArrayLen的参数可能为空,因此导致错误

The value '' cannot be converted to a number. 

The error occurred in D:/Resource/WWW/DEV/ww1dev.cwtvacations.com/welcome_survey/welcome_survey_question_builder.cfm: line 12 

10 : <cfset curPage = SESSION.thisPage /> 
11 : 
12 : <cfloop from="1" to="#ArrayLen(SESSION.WHSurveyStruct.pagesQuestions[curPage])#" index="curQuestion"> 
13 :  <cfif (SESSION.WHSurveyStruct.pagesQuestions[curPage][curQuestion].SectionID eq 4 AND SESSION.WHSurveyStruct.AirlineID neq 0) <!--- Ask airline questions, if airline known ---> 
14 :    OR (SESSION.WHSurveyStruct.pagesQuestions[curPage][curQuestion].SectionID neq 4 

回答

0

有几件事情你可以做。您可以使用三元运算符和整个事情赋值给一个变量:

upperBound = isNull(SESSION.WHSurveyStruct.pagesQuestions[curPage]) ? 0 : ArrayLen(SESSION.WHSurveyStruct.pagesQuestions[curPage]);

或者你也可以事先检查。然而,你很奇怪你指定一个数组的特定元素作为数组。即SESSION.WHSurveyStruct.pagesQuestions[curPage]确实pagesQuestions[]包含数组还是数组?如果是阵列,请删除[curParge]索引。

+0

你能否给出整个事情,我试过了并没有工作。如果没有cfset,它会显示“upperBound undefined” – Celeritas

+0

' ' 什么版本CF您使用的是? – jcaito

+0

8它说:“无效的标记?在第12行第84列找到。”当我尝试你的想法 – Celeritas

相关问题