Re: Re[2]: mixing of asign() and assign_by_ref() overwrites external vars
boots <[email protected]>
| Newsgroups | gmane.comp.php.smarty.devel |
|---|---|
| Message-ID | <[email protected]> |
Another example of breaking BC without adding anything new... --- Dmitry Koteroff <[email protected]> wrote: > Seems > > function assign($tpl_var, $value = null) > { > if (is_array($tpl_var)){ > foreach ($tpl_var as $key => $val) { > if ($key != '') { > $this->_tpl_vars[$key] =& $val; > } > } > } else { > if ($tpl_var != '') > $this->_tpl_vars[$tpl_var] =& $value; > } > } > > in Smarty.class.php, lines near 580, will solve the issue (I > have added two =& instead of =). > > And, in addition, it allows to use more intuitive > > $smarty->assign($key, &$value); > > instead of > > $smarty->assign_by_ref($key, $value); > > > Command > > $smarty->assign($key, $value); > > works as usual, with no side-effects. > > > SM> Boots schrieb: > > >>>>>$testvar = true; > >>>>>$smarty = new Smarty; > >>>>> > >>>>>$smarty->assign_by_ref('testvar', $testvar); > >>>>> > >>>>>// bug? > >>>>>var_dump($testvar); // prints: (bool) true > >>>>>$smarty->assign('testvar', false); > >>>>>var_dump($testvar); // prints: (bool) false > >>>> > >>>>What do you think should happen? You are changing a by-reference > >>>>value > >>> > >>>i expect if i use appand() that the reference is unset by smarty, > >>>cause > >>>i dont think that any body wants to set an external var this way! > >> > >> I suspect you don't really want to use append_by_ref then. > > SM> of course, i could, and this all is not really a problem for me, > SM> its just that this is not what i expected! > > SM> if i assign a var by reference to smarty, than cause i want to > make > SM> changes to this var after i append it to smarty, or to save > resources > > SM> but never to overwrite this extern var by a call to append() > > > SM> if others think this is not a bug ... not my problem! as i said i > have > SM> no problem with this behavior > > SM> p.s. sorry for my english > > > > -- > Best regards, > Dmitry Koteroff. > > -- > Smarty Development Mailing List (http://smarty.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ -- Smarty Development Mailing List (http://smarty.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php