当在 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_borkbork_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。进一步阅读退房:

cfargument

使用参数范围作为阵列

使用cffunction标签定义功能

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top