Ответ 1
Объекты ColdFusion передаются по ссылке. Невозможно передать объект по значению, но вы можете создать копию, используя функцию duplicate().
Объекты ColdFusion (т.е. CFC, вызываемые через cfobject), обычно передаются по ссылке или по значению (скопированы в память)? И можно ли заставить ColdFusion передавать объект в любом случае?
Объекты ColdFusion передаются по ссылке. Невозможно передать объект по значению, но вы можете создать копию, используя функцию duplicate().
Хорошо, имейте в виду, что использование duplicate() не работает в MX 7 для копирования определенных вещей, таких как CFC и COM, CORBA, и Java-объекты. Вы можете скопировать CFC в CF 8.
Сложные объекты, такие как структуры и CFC, передаются по ссылке, но если вы передаете массив в UDF, он передается по значению. Это делает невозможным запись пользовательской функции, которая мутирует массив, как это делают встроенные функции массива. Если вам действительно нужно передать массив по ссылке, вы можете обернуть его в структуру, а затем он будет передан по ссылке.
FWIW, массивы также передаются по ссылке в движке Railly CFML, как полагают многие разработчики. Ожидается, что Railo 3.1 предложит административную настройку, позволяющую вам выбрать поведение по умолчанию для дополнительной совместимости с Adobe CF.