2010-03-25 10 views
6

Ich habe, diese zu meinen Seiten:Gibt es eine ColdFusion-Entsprechung zu PHP für include_once?

pagewithinclude.cfm

<cfinclude template = "_pagename.cfm"> 

_pagename.cfm

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

rest of page 

</cfif> 

Gibt es eine bessere Art und Weise in CF? Etwas Ähnliches wie PHP's include_once?

+0

Da Sie definitionsgemäß nicht zum CFPARAM gelangen, wenn die Variable definiert ist, können Sie stattdessen CFSET verwenden. Dies wird weniger Overhead haben. –

+0

das ist nicht, wie es funktioniert ben, auf der ersten Zeit, die die Datei enthalten ist, muss die Variable YET definiert werden. Wenn die Datei AGAIN enthalten ist, wird die Variable definiert (vom ersten Mal) und der cfparam und Rest der Seite wird nie erreicht – davidosomething

+1

Hallo David. Sie haben eine NOT-IsDefined-Prüfung und dann darin ein cfparam. Das bedeutet, dass Ihr cfparam nur dann erreicht wird, wenn es nicht bereits definiert ist, wodurch cfparam überflüssig wird. Sie könnten dort ein cfset verwenden und Ihr Code würde genauso funktionieren. –

Antwort

5

Nein, was Sie getan haben, ist wahrscheinlich der beste Weg, es zu tun. Obwohl ich stattdessen eine Request-Variable verwenden würde.

+0

Warum ist der Anforderungsbereich besser? – davidosomething

+1

Ich denke, Request Scope bekommt Garbage Collected schneller? – Henry

+3

Der Anforderungsbereich ist für alle aufrufenden Vorlagen verfügbar, selbst wenn er von cfmodule, cfc usw. aufgerufen wird. –

Verwandte Themen