J'ai le code suivant qui crée d'abord un objet et ensuite il appelle une fonction appelée init.cffunction: second argument basé sur le premier argument
<cfset SESSION.objWatchlist = createObject("component", "path") />
<cfset SESSION.objWatchlist.init(session.addressid) />
Jusqu'ici tout va bien. La fonction init ressemble à ceci:
<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>
Maintenant, je veux ajouter un autre argument à la fonction cffunction. Je l'appellerai comme ceci:
<cfset SESSION.objWatchlist.init("addressid", session.addressid) />
et
<cfset SESSION.objWatchlist.init("sessionid", session.sessionid) />
-je ajouter de nouvelles lignes dans le 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>
Mais chaque fois que je reçois l'erreur « La balise doit être imbriquée dans une étiquette CFFUNCTION ".
Maintenant, ma question est de savoir comment puis-je écrire une fonction dans laquelle le second argument est basé sur le premier?
Est-ce encore possible?
Merci.
Si vous avez des variables dans la portée 'this', déclarez-les en dehors d'une fonction. Vous pouvez leur donner des valeurs dans une fonction. En ce qui concerne la question actuelle, déclarez tous les arguments et transférez toute logique à plus tard dans la fonction. –
@DanBracuk: Merci pour votre réponse. Avez-vous un exemple pour ça? – Wacki
À un peu hors sujet. Ce type de code devrait être dans ''. Ce sera beaucoup plus facile à lire. –