ColdFusion structkey, начиная с номера - PullRequest
3 голосов
/ 17 марта 2012

Почему это не получается:

<CFIF isdefined("URL.3dfile")>...</CFIF>

со следующим сообщением:

Параметр 1 функции IsDefined, который теперь является URL.3dfile, должен быть синтаксически допустимым именем переменной.

и это не будет:

<CFIF structkeyexists(URL,"3dfile")>...</CFIF>

Разве то, как это получается, не сильно отличается? И ... переменные, начинающиеся с чисел, недействительны или нет?

1 Ответ

11 голосов
/ 17 марта 2012

Сейбсен - имена переменных не должны начинаться с цифры.Вероятно, это наследие более старой не Java-версии CF, где переменная не была частью объекта.

Однако в мире Java все является объектом.Это приводит к синтаксическому нюансу.Если вы используете имена переменных в точечной нотации, ваше имя переменной, скорее всего, выдаст ошибку.Но используйте его по-другому, и он будет успешным.

Так что этот синтаксис работает url['33foo']

Но установка имени переменной напрямую - 33foo = true - не будет работать.

Вот пост с полным объяснением.

http://www.coldfusionmuse.com/index.cfm/2005/9/8/isdefined%20vs%20structkeyexists

...