由于我使用的系统具有登录和注销功能,因此当我登录系统时,我在 Session 内。我是 Session 的新手,我的问题是我在任何coldfusion页面中定义的任何变量及其值,我可以在任何页面上使用它吗?
例如,在浏览我的系统代码时,我在每个 CFML 页面都遇到了以下一行:
<cfparam name="INPUTID" default="0">
然后在页面的某个地方,我看到这个变量被像#INPUTId#
.
请说清楚
由于我使用的系统具有登录和注销功能,因此当我登录系统时,我在 Session 内。我是 Session 的新手,我的问题是我在任何coldfusion页面中定义的任何变量及其值,我可以在任何页面上使用它吗?
例如,在浏览我的系统代码时,我在每个 CFML 页面都遇到了以下一行:
<cfparam name="INPUTID" default="0">
然后在页面的某个地方,我看到这个变量被像#INPUTId#
.
请说清楚
要回答“我在任何coldfusion页面中定义的任何变量及其值,我是否可以在任何页面上使用它”这个问题......这取决于。
例如,如果您设置会话变量<cfset session.foo = "bar" >
,那么您可以#session.foo#
在任何页面上调用,因为它将存储在用户的会话中。
但是,如果您只是设置一个值,例如,<cfset foo="bar" >
那么它将最终在“变量”范围内,并且仅在该页面或请求中可用。(关于这一点,CF 有一个特定的“请求”范围,例如request.foo
,为此目的,在同一请求或页面视图中设置值的位置之后的任何代码中都可用)。
因此,如果您想设置可以在其他页面上使用的值,请使用会话。但请注意,在尝试从用户会话中调用它之前,您还需要使用cfparam
设置默认值或用于structKeyExists()
检查值,因为除非已经设置,否则该值可能不存在。否则,对于同一页面中使用的值,请使用“请求”范围,或查看 CF 文档以了解其他范围,例如变量、本地等。