我有下面的代碼首先創建一個對象,然後調用一個名爲init的函數。cffunction:基於第一個參數的第二個參數
<cfset SESSION.objWatchlist = createObject("component", "path") />
<cfset SESSION.objWatchlist.init(session.addressid) />
到目前爲止這麼好。 init函數如下所示:
<cffunction name="init" access="remote" output="false">
<cfargument name="addressID" type="numeric" required="true" />
<cfset THIS.ADDRESSID = arguments.addressID />
<cfset THIS.WATCHLIST = arrayNew(1) />
<cfset initWatchlistArray() />
<cfreturn this />
</cffunction>
現在我想向cffunction添加另一個參數。我會這樣稱呼它:
<cffunction name="init" access="remote" output="false">
<cfargument name="typeOfID" type="string" required="true" />
<cfif arguments.typeOfID eq "addressid">
<cfargument name="addressID" type="numeric" required="true" />
<cfset THIS.ADDRESSID = arguments.addressID />
<cfelseif arguments.typeOfID eq "sessionid">
<cfargument name="sessionID" type="string" required="true" />
<cfset THIS.SESSIONID = arguments.sessionID />
</cfif>
<cfset THIS.WATCHLIST = arrayNew(1) />
<cfset initWatchlistArray() />
<cfreturn this />
</cffunction>
但每次我得到錯誤「的標籤必須嵌套:
<cfset SESSION.objWatchlist.init("addressid", session.addressid) />
和
<cfset SESSION.objWatchlist.init("sessionid", session.sessionid) />
我在cffunction添加一些新線在CFFUNCTION標籤內「。
現在我的問題是如何編寫一個函數,其中第二個參數是基於第一個參數?
這甚至可能嗎?
謝謝。
如果你要在'this'範圍內有變量,在一個函數之外聲明它們。你可以在一個函數內給它們賦值。關於實際問題,聲明所有參數並將函數中的任何邏輯傳遞給稍後。 –
@DanBracuk:謝謝你的回答。你有這樣的例子嗎? – Wacki
有點偏離主題。這種類型的代碼應該在''中。閱讀起來會更容易。 –