cfm页面中局部变量的范围?

Rol*_*and 1 coldfusion coldfusion-9

以下是test.cfm页面上的内容:

<cfscript>
        Local.myString = "Hello";
</cfscript>
Run Code Online (Sandbox Code Playgroud)

范围是myString什么?它会在cfm页面的其他部分中显示,还是仅在<cfscript>定义它的标记之间显示?

Ada*_*ron 7

在函数之外,该分配设置变量variables.local.myString,并且变量范围的范围规则已有详细记录:关于范围:变量.来自文档:

使用cfset和cfparam标记创建的任何类型的变量的默认范围.变量范围变量仅在创建它的页面和任何包含的页面上可用(另请参见调用范围).在CFC中创建的变量范围变量仅可用于组件及其功能,而不能用于页面实例化组件或调用其功能.

本地范围同样是该页面上的文件,顺便说一句.

在对语言有疑问时,咨询文档始终是一个很好的起点.

  • 虽然从技术上讲,"变量"范围是可选的,但最好明确指定它.主要是为了更高的精度.省略范围时,将其保留为CF以确定哪个范围包含指定的变量名称(请参阅"评估未范围的变量").这通常是不受欢迎的.在存在范围冲突的情况下甚至可能导致意外结果.另外,明确确定所有变量的范围只会使代码更加直观IMO. (3认同)