2014-02-06 54 views
2

使用:CF10Complex對象類型不能被轉換爲簡單的值

我存儲一個結構的密鑰值在變量作爲這樣:

<cfset ApplicationArea = '1'> 

我想找到如果此值存在在這樣的結構中:

StructKeyExists(SESSION.Auth.AccessA, #ApplicationArea#) 

這一切都有效。然而,在SESSION.Auth.AccessA["1"]的結構內是更多的關鍵。我現在需要找到這個結構中是否存在某個鍵。這是我想出了但不工作:「複雜的對象類型不能轉換爲簡單的值

StructFindValue(SESSION.Auth.AccessA[#ApplicationArea#], '3') GT 0 

我得到的錯誤

我想知道的價值'3'存在於SESSION.Auth.AccessA["1"]的結構中(它在我轉儲SESSION變量時執行此操作)。我可能會讓我的解釋有些困惑,但我認爲它是正確的。

回答

3
<cfscript> 
if (ArrayLen(StructFindValue(SESSION.Auth.AccessA[ApplicationArea], '3', 'ALL'))) { 
    // it exists 
} else { 
    // it does not 
} 
</cfscript> 

編輯:如請求

<cfif ArrayLen(StructFindValue(SESSION.Auth.AccessA[ApplicationArea], '3', 'ALL'))> 
    <!--- it exists ---> 
<cfelse> 
    <!--- it does not ---> 
</cfif> 

StructFindValue非CFSCRIPT返回一個包含匹配值,該密鑰的信息結構的陣列。

https://wikidocs.adobe.com/wiki/display/coldfusionen/StructFindValue

你不需要在你的問題(我知道你問什麼時候,何時不最近使用它們)

+0

你能翻譯這不使用請任何#字符的? –

+3

夥計,這是一個if語句。我認爲這很簡單。 –

+2

所有的設置,但認真的,尋求幫助是一回事,要求別人爲你寫代碼並不是本網站的要點。下次嘗試閱讀您首先使用的功能的文檔。它清楚地表明它返回一個數組。因此「複雜對象不能轉換爲簡單值」錯誤。正如你在問題中顯示的那樣,數組永遠不能與零相比。 –

相關問題