Если у вас есть ситуация, когда один UDF вызывает в нем другой UDF, можно ли ссылаться на локальную область родителя, не передавая ее в качестве аргумента? Мои инстинкты говорят мне, что это невозможно, поскольку локальный объем функции предположительно будет выделен по дизайну.В ColdFusion UDFs есть способ ссылаться на переменную из области родительской функции?
Например:
<cffunction name="function01">
<cfset var fruit = "apple" />
<cfset function02() />
</cffunction>
<cffunction name="function02">
<cfdump var="#fruit#" /> <!--- can I reference fruit? --->
</cffunction>
Единственный способ я знаю, как дать доступ function02 к локальным переменным области видимости родительского ОДС должен передать его в качестве аргумента. Конечно, вы также можете использовать области REQUEST, FORM, URL, SESSION и APPLICATION, я полагаю.
<cffunction name="function01">
<cfset var fruit = "apple" />
<cfset function02(fruit) />
</cffunction>
<cffunction name="function02">
<cfargument name="fruit" />
<cfdump var="#fruit#" />
</cffunction>
используя аргумент, кажется, что это был бы правильный выбор, то почему бы Вам не сделать так? –
Это больше ради любопытства. Я знаю, что с тегами вы можете использовать область CALLER. Я не видел никаких ссылок на что-либо подобное для тегов . –
Если две функции находятся в одном файле, заберите слово 'var' в function01. Конечно, это меняет вопрос, потому что он больше не будет локальной областью родителя. –