Передаются ли объекты ColdFusion по ссылке или по значению? - PullRequest
24 голосов
/ 20 октября 2008

Обычно объекты ColdFusion (т.е. CFC, вызываемые через cfobject) передаются по ссылке или по значению (копируются в память)? И можно ли заставить ColdFusion передавать объект любым способом?

Ответы [ 4 ]

28 голосов
/ 20 октября 2008

Объекты ColdFusion передаются по ссылке. На самом деле нет способа передать объект по значению, но вы можете создать копию с помощью функции duplicate ().

15 голосов
/ 21 октября 2008

Имейте в виду, что использование duplicate () не работает в MX 7 для копирования определенных вещей, таких как CFC и COM, CORBA и объекты Java. Вы можете скопировать CFC в CF 8 .

10 голосов
/ 10 декабря 2008

Сложные объекты, такие как структуры и CFC, передаются по ссылке, но если вы передаете массив в UDF, он передается по значению. Это делает невозможным написание пользовательской функции, которая мутирует массив, как это делают встроенные функции массива. Если вам действительно нужно передать массив по ссылке, вы можете заключить его в структуру, а затем он будет передан по ссылке.

4 голосов
/ 26 июня 2009

FWIW, массивы также передаются по ссылке в движке Railo CFML, как полагают многие разработчики. В Railo 3.1 также ожидается наличие административного параметра, позволяющего вам выбрать поведение по умолчанию для дополнительной совместимости с Adobe CF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...