StructFindValue无法按预期工作

时间:2014-02-19 16:31:31

标签: coldfusion coldfusion-10

我有这样的结构:

SESSION.Auth.Access["1"]["2"]["Write"]

如果我cfdump结构#SESSION.Auth.Access#我可以完整地看到结构,并且它100%拥有嵌套数组中的数据。

但是,如果我使用此声明:

#StructFindValue(SESSION.Auth.Access["1"], '2', 'ALL')#

我得到一个空数组。如果我使用:

#ArrayLen(StructFindValue(SESSION.Auth.Access["1"], '2', 'ALL'))#

然后它返回数组长度的零。

我做了一些明显错误的事情,或者是否存在可能的字符串/数字问题?

1 个答案:

答案 0 :(得分:6)

所以你的结构也可以像这样编写?

SESSION.Auth.Access = {
   '1' = {
       '2' = {
          'Write' = 'foobar'
       }
    }
}

'2'是键,而不是值,因此您需要使用StructFindKey而不是StructFindValue。

确实这会给我一个空数组:

<cfdump var="#StructFindValue(SESSION.Auth.Access['1'], '2', 'ALL')#">

但这会让我回到'写'结构

<cfdump var="#StructFindKey(SESSION.Auth.Access['1'], '2', 'ALL')#">