2010-02-25 51 views

回答

29

有兩種選擇。

首先是使用cfparam來定義默認值,例如:

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

這可確保你總是可以參考url.varname

二是使用isDefinedstructKeyExists以測試可變的存在:

<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(url.varname) – Henry 2010-02-25 23:49:36

+1

一個絕招與cfparam只是用名字= 「varname的」,而不是名稱=」 url.varname「 - 然後它會驗證該varname是否存在爲url var或表單var。使GET和POST之間的切換變得簡單。 – kevink 2010-02-26 12:19:45

+7

@kevink,這是一個危險的道路。如果變量未在URL或FORM範圍中定義,則CFParam將在VARIABLES範圍內創建它。這有一些重大而細微的副作用,並且您確實需要了解實際發生的情況,以確保應用程序的可靠性。 – 2010-02-26 14:38:22

1

我在很多地方都用過這種方法。

在頁面的頂部:

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

頁面或自定義標籤以後,請檢查request.someVal變量的值,而不用擔心它崩潰,因爲它有一個默認值。

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

這對我有用,特別是因爲我希望我的頁面在沒有查詢字符串值時有一些默認行爲。 – Ectropy 2015-08-13 16:51:23

0

<cfscript>,你可以

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

param url.varname = ""; // sets value it was not already set 
相關問題