Re[6]: [SMARTY-DEV] mixing of asign() and assign_by_ref() overwrites external vars

From: Date: Tue, 08 Jun 2004 18:12:02 +0000
Subject: Re[6]: [SMARTY-DEV] mixing of asign() and assign_by_ref() overwrites external vars
References: 1 2  Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-2416@lists.php.net to get a copy of this message
D>> But you surely can not modify API nor use deprecated syntax. B> Grrr. It does modify the API. It introduces pass-by-reference into B> assign() which is not what is allowed in the current or previous B> versions. It does not introduce that. Please see code in previous mail carefully. D>> So, now API is not touched, deprecated & call works as without &, D>> but assign() after assign_by_ref() does not modify source D>> variable. B> If it doesn't change the source variable, what was the point of using a B> assign_by_ref() in the first place? Of course, to pass objects to template without copying. $b = "xxx"; $smarty->assign_by_ref("b", $b); $smarty->assign("b", "!"); echo $b; What THEORETICALLY should print last echo statement? "!" or "xxx"? Whad documentation says about that (or should say)? Please answer. D>> P.S. D>> It is now question of principle, of course, not practical. B> Yes, if it was a practical issue, I'm sure I (and others) would lend B> support behind it or something like it. If it is a matter of principle, B> what do you suppose the principle at stake is? See example above. That is the question. B> On an ancillary note, it will be interesting to see how everything pans B> out in the PHP5 timeframe where all of these PHP4 copy/ref semantics B> take on new meanings, but that is another story... PHP5 does not introduce new meaning for &=. It only introduses new meaning of object dereferencing. -- Best regards, Dmitry Koteroff.

« previous php.smarty.dev (#2416) next »