РЕДАКТИРОВАТЬ: Хорошо, я понимаю, как использовать эквалайзер
и все такое. Я опубликовал это немного
спешить. Мой вопрос о
скобки. Это синтаксически
правильно использовать их таким образом?
Синтаксически да. Синтаксис кода правильный и не выдает синтаксических ошибок.
Однако это не обязательно лучший способ сделать это. По крайней мере, вы должны иметь разрывы строк, чтобы сделать его более читабельным, например:
<cfif (not isdefined("URL.room") or URL.room EQ "")
and (not isdefined("URL.system" or URL.system EQ "")
and (not isdefined("URL.date") or URL.date EQ "")
>
И я был бы более склонен написать это так:
<cfif NOT
( ( isDefined('Url.Room') AND Len(Url.Room) )
OR ( isDefined('Url.System') AND Len(Url.System) )
OR ( isDefined('Url.Date') AND Len(Url.Date) )
)>
Потому что это гораздо более читабельно и делает более очевидным, что каждая строка проверяет одно и то же.
Во всяком случае, это предполагает, что я делал это в одном операторе IF.
Если вы начнете получать множество условий для проверки, вы можете рассмотреть возможность сделать что-то вроде этого:
<cfset FieldList = "Room,System,Date" />
<cfset AllFieldsValid = true />
<cfloop index="Field" list="#FieldList#">
<cfif NOT ( StructKeyExists(Url,Field) AND Len(Url[Field]) )>
<cfset AllFieldsValid = false />
<cfbreak/>
</cfif>
</cfloop>
<cfif AllFieldsValid>
...
Поначалу это может показаться пугающим, но гораздо проще в обслуживании - вы просто добавляете новый элемент в FieldList (и у вас уже может быть переменная, которая служит этой цели).
В любом случае, надеюсь, все это поможет - дайте мне знать, если есть какие-либо вопросы по этому поводу.