对于include_,是否有与PHP等效的ColdFusion?

对于include_,是否有与PHP等效的ColdFusion?,coldfusion,include,Coldfusion,Include,我已将此添加到我的页面: pagewithinclude.cfm <cfinclude template = "_pagename.cfm"> <cfif Not IsDefined("variables.included_pagename")> <cfparam name = "variables.included_pagename" default = "1"> rest of page </cfif> \u pagename.cf

我已将此添加到我的页面:

pagewithinclude.cfm

<cfinclude template = "_pagename.cfm">
<cfif Not IsDefined("variables.included_pagename")>
<cfparam name = "variables.included_pagename" default = "1">

rest of page

</cfif>

\u pagename.cfm

<cfinclude template = "_pagename.cfm">
<cfif Not IsDefined("variables.included_pagename")>
<cfparam name = "variables.included_pagename" default = "1">

rest of page

</cfif>

页面的其余部分

在CF中有更好的方法吗?类似于PHP的include_once?

不,您所做的可能是最好的方法。尽管我会使用请求变量。

为什么请求范围更好?我认为请求范围垃圾收集更快?请求范围将可用于所有调用模板,即使由cfmodule、cfc等调用。因为根据定义,如果定义了变量,您将无法访问CFPARAM,您可以使用CFSET。这将减少开销。这不是它的工作原理ben,在第一次包含文件时,变量还没有定义。如果再次包含该文件,将定义该变量(从第一次开始),并且永远不会到达cfparam和页面的其余部分。您有一个未定义的检查,然后在其中有一个cfparam。这意味着只有在尚未定义cfparam的情况下才能访问cfparam,从而使cfparam成为冗余的。你可以在那里使用一个cfset,你的代码也可以完全一样。这种行为正是我想要的,但仔细考虑后,我明白了你们的意思:当CFPARAM在决定是否设置变量之前进行自己的检查以查看是否定义了变量时,就会出现冗余,因此,CFSET不会对已定义的状态进行第二次检查,因此会稍微提高性能。因为CF10可以添加
runonce=true