Как в ColdFusion определить, существует ли переменная строки запроса? - PullRequest
10 голосов
/ 26 февраля 2010

Как в ColdFusion определить, существует ли переменная в строке запроса, не выдавая ошибку, пытаясь ее проверить?

Ответы [ 3 ]

31 голосов
/ 26 февраля 2010

Есть два варианта.

Первый - использовать cfparam для определения значения по умолчанию, например:

<cfparam name="url.varname" type="string" default="" />

Это гарантирует, что вы всегда можете обратиться к url.varname

Второй - использовать isDefined или structKeyExists для проверки наличия переменной:

<cfif isDefined("url.varname") and url.varname eq 42> do something </cfif>

или

<cfif structKeyExists(url, "varname") and url.varname eq 42> do something </cfif>
1 голос
/ 15 декабря 2011

Я использовал этот подход во многих местах.

Вверху страницы:

<cfparam name="request.someVal" default="request.defaultVal">

Позже на странице или в пользовательском теге проверьте значение переменной request.someVal, не опасаясь ее сбоя, поскольку она имеет значение по умолчанию.

<cfif ("request.someVal" eq "something")>
    ...
</cfif>
.
.
.
0 голосов
/ 27 ноября 2012

В <cfscript>, вы можете

param url.varname;  // throws error if it does not exist

param url.varname = ""; // sets value it was not already set
...