Вот действительно странная ошибка, с которой я недавно столкнулся в CF9. Кто-нибудь знает, почему она возникает и делаю ли я что-то не так, или существует исправление. Посмотрите на следующий код. Мы берем строку, добавляем A, добавляем B, а затем пытаемся добавить C... но в результате получаем "ababc". Ожидаемый результат - "abc". Ошибка возникает только в том случае, если вы используете именованный аргумент И неявный struct в передаче аргумента И оператор &=
в вызове функции. Если нет ни одного из этих 3 случаев, ошибка не возникает. Есть идеи, почему?
<cffunction name="test">
<cfargument name="widget">
<cfset var locals = StructNew()>
<cfreturn arguments.widget.value>
</cffunction>
<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset return &= test(widget = { value = "c" })>
<cfoutput>#return#</cfoutput>