Question

Les objets ColdFusion (c.-à-d. les CFC invoqués via cfobject) sont-ils normalement transmis par référence ou par valeur (copiés en mémoire)? Et est-il possible de forcer ColdFusion à transmettre un objet de l'une ou l'autre manière?

Était-ce utile?

La solution

Les objets ColdFusion sont passés par référence. Il n'y a pas vraiment de moyen de passer un objet par valeur, mais vous pouvez créer une copie en utilisant la fonction duplicate ().

Autres conseils

N'oubliez pas que l'utilisation de duplicate () ne fonctionne pas dans MX. 7 pour copier certaines choses, comme les CFC et les objets COM, CORBA et Java. Vous pouvez copier un CFC dans CF 8 , cependant.

Les objets complexes tels que les structures et les CFC sont transmis par référence, mais si vous transmettez un tableau à un fichier UDF, il le sera par valeur. Cela rend impossible l'écriture d'une fonction définie par l'utilisateur qui mue un tableau comme le font les fonctions de tableau intégrées. Si vous avez vraiment besoin de passer un tableau par référence, vous pouvez l'envelopper dans une structure, puis il sera passé par référence.

FWIW, les tableaux sont également passés par référence dans le moteur CFML de Railo, comme le pensent de nombreux développeurs. Railo 3.1 devrait également offrir un paramètre administratif vous permettant de choisir le comportement par défaut, pour une compatibilité optionnelle avec Adobe CF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top