gpt4 book ai didi

variables - 在 Coldfusion8 application.cfc 中,我在哪里定义应用程序和 session 变量?

转载 作者:行者123 更新时间:2023-12-04 05:48:42 26 4
gpt4 key购买 nike

我正在尝试设置我的第一个 application.cfc 文件。

我试图在“事件基础”上调用变量,如下所示:

<cffunction name="onApplicationStart" returnType="boolean" output="false">
<cfparam name="Application.RootDir" default="/">
<cfreturn true>
</cffunction>

<cffunction name="onSessionStart" returnType="boolean" output="false">
<cfparam name="Session.activeSession" default="Yes">
<cfparam name="Session.activeLogin" default="No">
<cfreturn true>
</cffunction>

我认为这会很好地工作,但事实证明,事实并非如此,因为我需要先声明所有内容,如下所示:
 <cfparam name="Application.RootDir" default="">
<cfparam name="Session.activeSession" default="">
<cfparam name="Session.activeLogin" default="">

我的问题 :
为什么要使用 CF 事件来声明变量。如果我无论如何都需要在事件之外声明,我可以为自己节省一行代码并声明并分配初始值?是我做错了还是事件只是为了做事而不是为了宣布?

感谢您的输入!

最佳答案

“之前”(“之前声明所有内容”)是什么意思?在什么之前? onApplicationStart() 处理程序是应用程序启动时运行的第一件事,而 onSessionStart() 处理程序是 session 开始时运行的第一件事。因此,在建立应用程序和 session 的上下文中,没有“之前”。我认为您需要向我们展示更多代码:例如一些演示它们“不工作”的代码。

也就是说,您没有向我们展示 Application.cfc 的伪构造函数部分,因此无法判断您在那里遇到了什么问题(如果有的话)。但是您需要在 session 工作之前启用 session 管理,并且您可能需要在应用程序或 session 变量保持不变之前命名您的应用程序(尽管它们也可能只与无名应用程序一起使用?即使他们这样做,最好命名您的应用程序)。

最后 - 这与是否设置变量无关,但您应该使用 <cfset>设置变量时,不是 <cfparam> .两者在此处具有相同的效果,但前者是该工作的正确工具。

关于variables - 在 Coldfusion8 application.cfc 中,我在哪里定义应用程序和 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10362869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com