2013-01-07 57 views
3

今年我開始了一個很大的問題。 當我做CF9 cfscript,在參數中傳遞動態數組

myName = "Henry"; 
myCustomFunction([ myName, "Thierry" ]); 

它拋出像myName is undefined一個錯誤。爲什麼?

我可以通過做

myName = "Henry"; 
aMyArrayArgument = [ myName, "Thierry" ]; 
myCustomFunction(aMyArrayArgument); 

解決這個但是,我想知道爲什麼ColdFusion的不允許傳遞參數[ myName, "Thierry" ]

我使用Framework One(FW/1),如果它可以幫助。

謝謝!

+7

我懷疑它與你的函數定義有關。 'myCustomFunction'的簽名是什麼?另外,確切的錯誤信息是什麼? – Leigh

+1

我會迴應別人說的話。你引用的代碼很好。這是其他一些代碼給你的錯誤。我可以推薦你看看魯棒例外處理打開時的錯誤,它會給你確切的錯誤信息和它發生的線。那麼你可以提供給我們,而不是像「我的名字是未定義的錯誤拋出」的東西。不要給我們錯誤是*,像*一樣,給我們確切的錯誤,以及導致錯誤的確切代碼。 –

+0

這聽起來像一個錯誤的變種[#3482734](https://bugbase.adobe.com/index.cfm?event=bug&id=3482734) - 我猜實際的代碼是在一個塊內,並使用命名參數。 –

回答

1

如果你的實際代碼看起來更像是這樣的:

if (something) 
{ 
    myName = "Henry"; 
    myCustomFunction(argname=[ myName, "Thierry" ]); 
} 

然後這是因爲在CF字面結構和數組的符號是非常糟糕的書面和越野車。

如果你可以確認它破裂的情況,raise an issue with Adobe(有幾個與此相關的問題;你可能或不喜歡檢查重複)。

+0

謝謝。事實上,錯誤顯示在IF聲明中 – Adysone

1

如果我這樣做:

<cffunction name="xx" returntype="void"> 
    <cfargument name="x" type="array"> 
    <cfdump var="#arguments.x#"> 
</cffunction> 

<cfset myname = "dan"> 
<cfset xx([myname, 'bracuk']) > 

的代碼運行沒有錯誤,我看到了轉儲。代碼中必須有其他內容。