Chiamare una funzione utilizzando CF Invoke

È possibile chiamare le funzioni utilizzando due tag CFML: CFINVOKE e CFINVOKEARGUMENT. Il seguente codice è una funzione:

 funzione ADD2 (firstNumber, secondNumber) (return firstNumber + secondNumber;) 
  

Di seguito è riportato come potremmo chiamare tale funzione utilizzando la sintassi standard:

 # ADD2 (1,2) # 

Se chiamiamo tale funzione utilizzando CFINVOKE, esso appare come segue:

 # # theSum 

Si noti che, utilizzando CFINVOKE, abbiamo specificare il nome della variabile nella chiamata modello in cui il risultato della funzione viene restituito. Ciò è necessario perché non sono semplicemente l'output di una chiamata di funzione inline: Alcuni contenitore devono essere lì per il risultato che è esterno al tag codice basato su chiamata della funzione. CFINVOKEARGUMENT consente inoltre di includere condizionale o modificare gli argomenti, perché si tratta di un tag da costruzione a base, come mostra il seguente esempio:

 # # theSum 

Si noti che quando si utilizza CFINVOKEARGUMENT, è sempre necessario fornire un nome per ogni parametro, quindi non è possibile utilizzare la notazione posizionale con CFINVOKEARGUMENT. Avete un'altra opzione per chiamare una funzione utilizzando CFINVOKE. Puoi mettere argomenti della funzione in una struttura denominata argumentcollection e passare la struttura di CFINVOKE, come segue:


   
   
   

Tutte le chiavi in myStruct diventano gli argomenti per la SumArgs () la funzione, in sostanza, myStruct diventa argomenti della funzione di raccolta. Il vantaggio di questo metodo è che si possono assemblare gli argomenti nella struttura ben prima che la funzione viene chiamata e poi sufficiente passare la singola struttura alla funzione. Lo svantaggio è che si deve sempre utilizzare il nome notazione, si può avere alcun argomento senza nome. Hai ancora un'altra opzione per chiamare CFINVOKE. Gli argomenti della funzione può essere passato come attributi extra al CFINVOKE, come segue:

Si faccia un caveat in uso CFINVOKE. Il tentativo di passare l'argomento argumentcollection e separare gli attributi al tempo stesso provoca CFINVOKE di ignorare il argumentcollection, causando alcuni degli argomenti la funzione di essere indefinito. Stranamente, cambiando argumentcollection a AttributeCollection risolve il problema. Questo è stato verificato da Macromedia e possono essere modificate in futuro, in modo da non fare affidamento su questo comportamento. Non tutte le funzioni devono restituire un valore. La funzione nel codice seguente, ad esempio, converte tutti i valori in un array in maiuscolo:

 funzione UCaseArray (arArray) (for (i = 1; i LTE ArrayLen (arArray); i = i + 1) (arArray [i] = UCase (arArray [i]);) arArray return;)  myArray = UCaseArray (myArray); 

In questo caso, abbiamo bisogno di tornare myArray perché avevamo modificato gli elementi in una copia della matrice originale. Se scriviamo la funzione per modificare le chiavi di una struttura, tuttavia, non abbiamo bisogno di restituire un valore, come mostra il seguente esempio:

 funzione UCaseStruct (myStruct) (for (item in myStruct) (myStruct [item] = UCase (myStruct [item]);) return;)  UCaseStruct (myStruct); 

un articolo presentato da Jack Irwingston


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo è "chiamata a una funzione utilizzando CF Invoke" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 173 users browsing the articles directory   


  

|