<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0"><tbody><tr><th colspan="3" align="center">Smarty - the compiling PHPtemplate engine</th> </tr><tr><td width="25%" align="left" valign="bottom"><a href="api.functions.html" accesskey="P">Prev</a></td> <td width="50%" align="center" valign="bottom">Chapter 13. Smarty Class Methods()</td> <td width="25%" align="right" valign="bottom"><a href="api.append.by.ref.html" accesskey="N">Next</a></td> </tr></tbody></table>
# append()[添加]
Name 函數名稱
append() ― append an element to an assigned array 在指定數組中添加一個元素。
Description 描述
void append(mixed var);
void append(string varname, mixed var, bool merge);
If you append to a string value, it is converted to an array value and then appended to. You can explicitly pass name/value pairs, or associative arrays containing the name/value pairs. If you pass the optional third parameter of TRUE, the value will be merged with the current array instead of appended.
如果添加的是一個字符串,該字符串會被轉換為數組格式后再進行添加。所添加的數據可以采用名/值對的格式,或者采用包含名/值對的關聯數組格式。如果第三個可選參數被指定為TRUE,所添加的值會和數組中現有元素進行合并,而不是直接添加。
<table width="80%" border="0" cellpadding="2" cellspacing="2" class="note"><caption> 技術提示 </caption> <tr><td><p><b>Technical Note: </b> 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 PHP array_merge() [http://php.net/array_merge] function which wipes out numerical keys and renumbers them.</p> <p>使用第三個參數“merge”涉及到數組鍵,所以,如果添加和被添加的數組都是以數字為索引,他們會互相覆蓋,或者產生不連續的索引。這并不象PHP中的<a href="http://php.net/array_merge">array_merge()</a>函數,后者會刪除原有的數字索引,重新對索引進行編號。</p></td> </tr></table>
<table class="EXAMPLE" cellspacing="0" cellpadding="0" border="0" width="100%"><tbody><tr><td><div class="EXAMPLE"> <a name="AEN3131" id="AEN3131"> </a> <b>Example 13-1. append()<br/></b> <table width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td><p><?php<br/> // This is effectively the same as assign()<br/> $smarty->append('foo', 'Fred');<br/> // After this line, foo will now be seen as an array in the template<br/> $smarty->append('foo', 'Albert');</p> <p>$array = array(1 => 'one', 2 => 'two');<br/> $smarty->append('X', $array);<br/> $array2 = array(3 => 'three', 4 => 'four');<br/> // The following line will add a second element to the X array<br/> $smarty->append('X', $array2);</p> <p>// passing an associative array<br/> $smarty->append(array('city' => 'Lincoln', 'state' => 'Nebraska'));<br/> ?></p> </td> </tr></tbody></table><p><strong>譯者例:關于第三個參數'merge'</strong></p> <table width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td><p>上面提到'merge'涉及到數值合并的問題,這主要是針對添加的同是數組的情況:<br/> test.php:<br/> include_once('../libs/Smarty.class.php');<br/> $smarty = new Smarty;<br/> $smarty->assign('arr',array(1,2,3));<br/> $smarty->append('arr',array(4),true);<br/> $smarty->display('test.html');<br/><br/> test.html:<br/> {foreach $arr as $i}<br/>{$i}、<br/>{/foreach}<br/><br/><br/> 輸出:4、2、3、</p> <p>將$smarty->append('arr',array(4),true);中的;;‘merge’的true參數改false則會完成添加:<br/> 1、2、3、Array、</p> </td> </tr></tbody></table></div></td> </tr></tbody></table>
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td width="33%" align="left" valign="top"><a href="api.functions.html" accesskey="P">Prev</a></td> <td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">Home</a></td> <td width="33%" align="right" valign="top"><a href="api.append.by.ref.html" accesskey="N">Next</a></td> </tr><tr><td width="33%" align="left" valign="top">Smarty Class Methods()<br/> Smarty類方法 </td> <td width="34%" align="center" valign="top"><a href="api.functions.html" accesskey="U">Up</a></td> <td width="33%" align="right" valign="top">appendByRef()<br/> 引用添加 </td> </tr></tbody></table>
- Smarty模板編譯引擎
- 序
- 譯序
- I.開始
- 第一章. 什么是Smarty?
- 第二章. 安裝
- II.模板設計者篇
- 第三章.基本語法
- 注釋
- 變量
- 函數
- 屬性
- 雙引號里嵌入變量
- 數學運算
- 忽略Smarty解析
- 第四章.變量
- 從PHP分配的變量
- 從配置文件讀取的變量
- 變量范圍
- {$smarty}保留變量
- 第五章.變量調節器
- capitalize
- cat
- count_characters
- count_paragraphs
- count_sentences
- count_words
- date_format
- default
- escape
- indent
- lower
- nl2br
- regex_replace
- replace
- spacify
- string_format
- strip
- strip_tags
- truncate
- upper
- wordwrap
- 第六章.組合修改器
- 第七章.內置函數
- {$var=}
- {append}
- {assign}
- {block}
- {call}
- {capture}
- {config_load}
- {debug}
- {extends}
- {for}
- {foreach},{foreachelse}
- @index
- {function}
- {if},{elseif},{else}
- {include}
- {include_php}
- {insert}
- {ldelim},{rdelim}
- {literal}
- {nocache}
- {php}
- {section},{sectionelse}
- .index
- {while}
- 第八章.自定義函數
- {counter}
- {cycle}
- {eval}
- {fetch}
- {html_checkboxes}
- {html_image}
- {html_options}
- {html_radios}
- {html_select_date}
- {html_select_time}
- {html_table}
- {mailto}
- {math}
- {textformat}
- 第九章.配置文件
- 第十章.調試控制臺
- III.模板程序員篇
- 第十一章 常量
- SMARTY_DIR
- 第十二章 Smarty類變量
- $template_dir
- 第十三章.Smarty類方法
- append()
- appendByRef()
- assign()
- assignByRef()
- clearAllAssign()
- clearAllCache()
- clearAssign()
- clearCache()
- clearCompiledTpl()
- clearConfig()
- compileAllConfig()
- compileAllTemplates()
- configLoad()
- createData()
- createTemplate()
- disableSecurity()
- display()
- enableSecurity()
- fetch()
- getConfigVars()
- getRegisteredObject()
- getTags()
- getTemplateVars()
- isCached()
- loadFilter()
- registerFilter()
- registerPlugin()
- registerObject()
- registerResource()
- templateExists()
- unregisterFilter()
- unregisterPlugin()
- unregisterObject()
- unregisterResource()
- testInstall()
- 第十四章.緩存
- 建立緩存
- 多重緩存
- 緩存集合
- 控制插件輸出的可緩存性
- 第十五章.高級特性
- 安全
- 通過模板更改設置
- 模板繼承
- 數據流
- 對象
- 靜態類
- 預過濾器
- 后過濾器
- 輸出過濾器
- 緩存處理函數
- 資源
- 第十六章.以插件擴展Smarty
- 插件如何工作
- 命名約定
- 編寫插件
- 模板函數
- 調節器
- 塊函數
- 編譯函數
- 預濾器/后濾器
- 輸出過濾器
- 資源
- 插入
- Ⅳ.附錄
- 第十七章.疑難解答
- Smarty/PHP 錯誤
- 第十八章.使用技巧和經驗
- 空白變量處理
- 默認變量處理
- 傳遞變量標題給頭模板
- 日期
- WAP/WML
- 組件化模板
- 拒絕電子郵件地址
- 第十九章. 相關資源
- 第二十章. 漏洞
- 3.0安裝包
- 2.x版本升級至3.x版本的提示
- 3.0.x使用指南
- 翻譯人員列表