引数の構造体の内容を、コンポーネントのすべての関数の変数スコープに簡単に配置したいと考えています。「タイトル」は searchitems 構造体の 1 つです。
<cffunction name="setSearch" acces="public" returntype="void">
<cfargument name="searchitems" type="struct" required="true" />
<cfset variables = arguments.searchitems>
<cfset variables.test = "yo">
</cffunction>
<cffunction name="testit" acces="public" returntype="void">
<cfdump var="#variables.test#"><br>
<cfif isdefined('variables.test')>found in variables.test </cfif>
<cfif isdefined('variables.variables.test')>found in variables.variables.test </cfif>
<hr>
<cfdump var="#variables.title#"><br>
<cfif structkeyexists(variables,'title')>found in variables.title with structkeyexists </cfif>
<cfif structkeyexists(variables.variables,'title')>found in variables.variables.title with structkeyexists</cfif>
<cfif isdefined('variables.title')>found in variables.title </cfif>
<cfif isdefined('variables.variables.title')>found in variables.variables.title</cfif>
</cffunction>
ただし、これを実行すると次のようになります。
yo
found in variables.test
mytitletext
found in variables.variables.title with structkeyexists
found in variables.variables.title
タイトルを変数としてダンプまたは出力できるのは奇妙だと思います.タイトルですが、isDefinedまたはstructkeyexistsで検出できません。より効率的な割り当て方法はありますか
<cfset variables = arguments.searchitems>