Coldfusion 函数中 cfparam 和 cfargument 之间的区别?
-
12-11-2019 - |
题
当在 cffunction 标签之后调用时,这两个代码块有什么区别:
<cfparam name="bork_bork_bork" default="false">
<cfargument name="bork_bork_bork" required="false" default="false">
解决方案
<cfparam>
, 与默认属性一起使用时,将确保变量存在。因为没有明确范围, bork_bork_bork
正在被放入 Variables
范围。
<cfargument>
用于将参数传递给函数。这些值存储在 Arguments
范围。您可以使用以下方式访问该值 arguments.bork_bork_bork
.
注意 arguments.bork_bork_bork
和 bork_bork_bork
不一样。范围 arguments
仅在函数内,另一个存储在 Variables
范围并且在页面上的任何位置都有效(尽管我不建议以这种方式编码。)
其他提示
cfparam与函数无关。我可以看到这很困惑,因为参数/参数是大多数语言中的可互换词。请记住,用户定义的函数在第5版之前没有添加到CF,因此使用CFParam作为初始化变量的方式没有冲突。此外,CFPARAM标签可能从现在过时的函数,parameterexists()它)
cfparam是一种为任何变量设置默认值的方法,如果变量尚不存在。这是执行以下操作的快捷方式:
<cfif NOT isDefined('bork_bork_bork')>
<cfset bork_bork_bork = 'myDefaultSetting'>
</cfif>
.
cfargument仅在开放标签之后可用,以将参数定义传递给CFC函数或用户定义的函数。
从我回忆起,Cffunction标签和Cfargument标签之间没有任何东西可以存在,因此它们必须在Cffunction标签之后出现。
从函数中通过参数{arguments.bork_bork_bork}或arights 1 }
cfparam只需确保变量可在请求上可用,而不应该使用而不是cfargument。进一步阅读退房:
不隶属于 StackOverflow