我想测试一下:
<cfif Exists(MyStruct["mittens"])>
</cfif>
如果 MyStruct 中不存在“mittens”键,它将返回什么? 0,还是“”?
什么应该取代 Exists 函数?
UPDATE
我试过,
<cfif IsDefined(MyStruct.mittens)>
这也会引发错误
元素 Mittens 在 MyStruct 中未定义。
为了测试密钥是否存在,我建议:
<cfif StructKeyExists(MyStruct, "mittens")>
<!--- or --->
<cfset key = "mittens">
<cfif StructKeyExists(MyStruct, key)>
这在幕后称为containsKey()
ColdFusion 结构所基于的 java.util.map 的方法。这可以说是查找密钥是否存在的最快方法。
另一种选择是:
<cfif IsDefined("MyStruct.mittens")>
<!--- or --->
<cfset key = "mittens">
<cfif IsDefined("MyStruct.#key#")>
这在幕后调用Eval()
在传递的字符串上(或者我相信)并告诉您结果是否是变量引用。相比之下,这比StructKeyExists()
。从好的方面来说:您可以在一次调用中测试嵌套结构中的子键:
<cfif IsDefined("MyStruct.with.some.deeply.nested.key")>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)