2010-02-25 6 views

답변

29

두 가지 옵션이 있습니다.

첫 번째는 기본 값 예를 정의하는 cfparam을 사용하는 것입니다

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

이 항상

두 번째는 테스트하기 위해 isDefined 또는 structKeyExists을 사용하는 것입니다 url.varname 참조 할 수 있도록 변수의 존재 :

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

또는

<cfif structKeyExists(url, "varname") and url.varname eq 42> do something </cfif> 
+2

을위한 또 하나의 방법 CF9 : isNull에의 cfparam와 깔끔한 트릭이 아니라 이름이 아닌 이름 = "varname에"를 사용하는 그냥 – Henry

+1

(url.varname) = " url.varname "- 그러면 varname이 url var 또는 form var로 존재 함을 확인합니다. GET과 POST를 쉽게 전환 할 수 있습니다. – kevink

+7

@kevink, 그건 위험한 길입니다. 변수가 URL 또는 FORM 범위에 정의되지 않은 경우 CFParam은 VARIABLES 범위에 변수를 만듭니다. 중요하지만 미묘한 부작용이 있으며 응용 프로그램의 안정성을 확보하기 위해 실제로 어떤 일이 일어나고 있는지 파악하고 있어야합니다. –

1

이 방법을 여러 곳에서 사용했습니다. 페이지 상단에서

: 그것은 기본 값을 가지고 있기 때문에

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

나중에 페이지 나 사용자 정의 태그에, 그것은 충돌의 두려움없이 request.someVal 변수의 값을 확인합니다. <cfscript>에서

<cfif ("request.someVal" eq "something")> 
    ... 
</cfif> 
. 
. 
. 
+0

특히 쿼리 문자열 값이 없을 때 내 페이지가 기본 동작을하도록하려는 경우에 유용합니다. – Ectropy

0

을 수행 할 수 있습니다

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

param url.varname = ""; // sets value it was not already set 
관련 문제