Hi Alan,

I appreciate there is some code in there that supports by value to
functions but it doesn't seem to be byvalue if the var keyword is used
inside the function which is where I think the inconsistency with ACF
is coming from. Using VAR or not I don't believe should alter the
behaviour.

Many thanks

A

On Jun 24, 1:11 am, "Alan Williamson (aw2.0 cloud experts)"
<[email protected]> wrote:
> I honestly can't believe someone actually designed it this way at ACF.  
> I mean how confusing do you want to make a language?   We all know some
> of the other quirks of the language which again, we've discussed
> historically on this list.
>
> Complex types should _always_ be passed by reference, never by value.  
> The fact they do in certain circumstances is just wrong.   The vast
> majority of languages operate this way.
>
> However, we do support this "wrongness" - ACF of passing an array by
> value to UDF functions.   Trust me, that is a whole host of code we
> would like to rip out of the engine/language.   Instead we provide a
> means to turn this off, which is a flag i have flipped all the time.
>
> The issue however isn't that passing arrays by value is wrong, what is
> wrong, is that ACF has failed to be consistent across everything.   Why
> should a UDF function be different from a built-in function?  This just
> makes it harder for the poor CFML developer to figure out whats-what.  
> Another area that they fail to provide is named-arguments for core
> functions (something we do).
>
> CFML is meant to be easy, straight forward and powerful.   We don't need
> these quirks.
>
>
>
> AlexS wrote:
> > Sorry the test case WW has posted doesn't show the whole picture but
> > her description does describe that this involves a method.
>
> > What we're seeing is that if the VAR keyword is not used then the
> > array is passed by Value into the function which is consistent with
> > normal Coldfusion behaviour.
>
> > However when the VAR keyword is used then it passes by reference.
>
> > Where as obviously with Structs in both instances its passed by
> > reference
>
> > Also note this 
> > urlhttp://www.bennadel.com/blog/141-ColdFusion-Arrays-Passed-By-Value.htm
> > which describes the scenario but actually I don't believe Open BD is
> > exhibiting this behaviour which i believe it should.
>
> > I haven't confirmed that CF9 behaves the same way but the inclusion of
> > not of the VAR keyword effecting arrays in this way to me seems odd.
>
> > A

-- 
official tag/function reference: http://openbd.org/manual/
 mailing list - http://groups.google.com/group/openbd?hl=en

Reply via email to