Передаются ли объекты ColdFusion по ссылке или по значению?

StackOverflow https://stackoverflow.com/questions/219564

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top