2012-05-30 83 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

相關問題