Domanda

Gli oggetti ColdFusion (ovvero i CFC invocati tramite cfobject) vengono normalmente passati per riferimento o per valore (copiati in memoria)? Ed è possibile forzare ColdFusion a passare un oggetto in entrambi i modi?

È stato utile?

Soluzione

Gli oggetti ColdFusion vengono passati per riferimento. Non c'è davvero un modo per passare un oggetto per valore, ma puoi crearne una copia usando la funzione duplicate ().

Altri suggerimenti

Bene, tieni presente che l'utilizzo di duplicate () non funziona in MX 7 per copiare determinate cose, come CFC e oggetti COM, CORBA e Java. Tuttavia puoi copiare un CFC in CF 8 , tuttavia.

Gli oggetti complessi come le strutture e i CFC vengono passati per riferimento, ma se si passa un array a un UDF, viene passato per valore. Ciò rende impossibile scrivere una funzione definita dall'utente che muta un array come fanno le funzioni di array integrate. Se hai davvero bisogno di passare un array per riferimento, puoi avvolgerlo in uno struct, quindi verrà passato per riferimento.

FWIW, anche le matrici vengono passate per riferimento nel motore Railo CFML, come molti sviluppatori credono che dovrebbero. Railo 3.1 dovrebbe inoltre offrire un'impostazione amministrativa per consentire all'utente di scegliere il comportamento predefinito, per la compatibilità opzionale con Adobe CF.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top