append_by_ref
引用添加

void append_by_ref(string varname, mixed var)

void append_by_ref(string varname, mixed var, boolean merge)

This is used to append values to the templates by reference. If you append a variable by reference then change its value, the appended value sees the change as well. For objects, append_by_ref() also avoids an in-memory copy of the appended object. See the PHP manual on variable referencing for an in-depth explanation. If you pass the optional third parameter of true, the value will be merged with the current array instead of appended.

本函数用于采用引用的方式把变量的值添加到原有值之后。如果采用引用的方式添加了一个变量,那么当这个变量的值改变时,被添加的值也随之改变。对于 对象,append_by_ref()函数也能够避免对于被添加对象的内存拷贝。关于变量引用的进一步解释可以查看PHP手册。如果第三个可选参数设置为 true,数值将会和现有数组合并,而不是添加在数组后面。

Technical Note: The merge parameter respects array keys, so if you merge two numerically indexed arrays, they may overwrite each other or result in non-sequential keys. This is unlike the array_merge() function of PHP which wipes out numerical keys and renumbers them.

注意:使用第三个参数“merge”时要考虑到数组的索 引,所以,如果添加和被添加的数组都是以数字为索引,他们会互相覆盖,或者产生不连续的索引。这并不象PHP中的array_merge()函数,后者会 删除原有的数字索引,重新对索引进行编号。

Example 13-2. append_by_ref
例子 13-2. 引用添加

// appending name/value pairs
$smarty->append_by_ref("Name",$myname);
$smarty->append_by_ref("Address",$address);