首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cfscript ColdFusion中定义变量?

在cfscript ColdFusion中定义变量?
EN

Stack Overflow用户
提问于 2018-06-26 13:58:59
回答 2查看 3.1K关注 0票数 2

我试图用Application.cfc重写系统中的.cfc和其他.cfc文件。我不知道它们在cfscript中是如何工作的。我想知道如何在函数中定义变量。例如,onRequestStart()函数如下所示:

代码语言:javascript
运行
复制
function onRequestStart(required string thePage) returntype="boolean" output="false" {
        var request.appCode = "MyApp";
        var request.appName = "Single Page Application";
        var page = listLast(arguments.thePage,"/");
        var onApplicationStart();

        if(!listFindNoCase("Home.cfm,Auth.cfc",page)){
            if(structKeyExists(SESSION, "loggedin") AND SESSION.loggedin EQ false){
                location(url="https://www.myapp.org", addToken="false");
            }
        }

        return true;
    }

在定义var变量的情况下,是否需要使用request/session单词?如果我做什么是最佳实践,使用var word还是使用local.variablenamelocalvariablescfscript中相同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-26 14:36:40

var仅用于局部变量。这意味着在函数定义之外可以/不应该访问的变量。每个会话和请求都可以访问SessionRequest。将它们放到var范围内会带来可怕的结果。

您可以使用varlocal,两者都具有“本地”范围。Variables是页面作用域,在Variables作用域中定义的任何变量都可以被CFC中的所有函数访问。

代码语言:javascript
运行
复制
function onRequestStart(required string thePage) returntype="boolean" output="false" {
    request.appCode = "MyApp";
    request.appName = "Single Page Application";
    var page = listLast(arguments.thePage,"/");
  //this is a function call and not variable declaration.   
  onApplicationStart();

    if(!listFindNoCase("Home.cfm,Auth.cfc",page)){
        if(structKeyExists(SESSION, "loggedin") AND SESSION.loggedin EQ false){
            location(url="https://www.myapp.org", addToken="false");
        }
    }

    return true;
}   
票数 7
EN

Stack Overflow用户

发布于 2018-06-26 21:21:56

var不等于<cfset>标记,也就是说,当切换到CFScript语法时,您不能进行简单的搜索&替换。

var仅用于局部变量定义。这意味着设置结构和数组项(如requestsession和其他作用域变量)不应以var作为前缀。此外,函数调用必须在没有前面的var的情况下编写。

localvar都引用本地范围。尽管如上所述,如果您想通过local.something定义变量,也不需要使用var关键字。

variables,与local相反,指的是页面范围,它可以从组件和任何包含的页面中的任何地方访问。

有关不同作用域的更多信息,您应该使用读取Adobe文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51044740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档