Podczas korzystania z CFML i CF9 zwykle zmienię zakres moich zmiennych pętli; w tym przypadku local.i
, na przykład:Czy konieczne jest zmienne zmienne pętli zakresu w CFScript?
<cfloop list="#this.list#" index="local.i">
<cfif Len(local.i) GT 10>
// do something
</cfif>
</cfloop>
Niedawno rozpoczął przekształcanie kilka rzeczy do CFScript oraz (ku mojemu rozczarowaniu okazało się, że nie ma sposobu na pętli na liście w CFScript) Zastanawiam się, czy powinienem jeszcze var zakres moje zmienne pętlowe i jak:
for (i = 1; LTE ListLen(this.list); i = i + 1) {
if (Len(ListGetAt(this.list, i) GT 10)) {
// do something
}
}
powinienem robić local.i = 1
i local.i = local.i + 1
istead kodu próbki w moim przykładzie? Czy to konieczne?
EDIT: Powinienem również zapytać, czy forma CFScript mojej pętli CFML jest poprawna; Pytam, ponieważ właśnie zauważyłem, że moja pętla CFML używa ,
(przecinek i spacja) dla argumentu delimiter
, który wydaje się nieistniejący w wersji CFScript pętli.
Jedną rzecz chciałbym zwrócić uwagę - chyba że " zrób coś "może zmienić długość twojej listy, chciałbym zapisać ją w zmiennej i zapętlić do tego. Rozumiem, że sposób w jaki to napisałeś, operacja listlen() będzie wywoływana dla każdej pętli. –