<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><th colspan="3" align="center">Smarty - the compiling PHP template engine</th></tr><tr><td width="25%" align="left" valign="bottom"><a href="language.variables.html">Prev</a></td><td width="50%" align="center" valign="bottom">Chapter 4. Variables[第四章.变量]</td><td width="25%" align="right" valign="bottom"><a href="language.variables.scopes.html">Next</a></td></tr></table>
# [Variables assigned from PHP]()[**从PHP分配的变量**]
**Table of Contents[内容列表]**[Associative arrays](#)[关联数组][Array indexes](#)[数组下标][Objects](#)[对象]
Variables that are assigned from PHP are referenced by preceding them with a dollar sign $.
调用从PHP分配的变量需在前加"$"符号(译注:同php一样)。
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="EXAMPLE"><tr><td><div class="EXAMPLE"><a name="AEN242" id="AEN242"/> <b>Example 4.2. Assigned variables<br/> 例 4-2.分配的变量</b> <table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><p> PHP code:<br/> <?php<br/> $smarty = new Smarty();<br/> $smarty->assign('firstname', 'Doug');<br/> $smarty->assign('lastname', 'Evans');<br/> $smarty->assign('meetingPlace', 'New York');<br/> $smarty->display('index.tpl');<br/> ?><br/><br/> index.tpl source:</p> <p>Hello {$firstname} {$lastname}, glad to see you can make it.<br/> <br /><br/> {* this will not work as $variables are case sensitive *} {* 下行读取不到变量,因为变量区分大小写字台 *} <br/> This weeks meeting is in {$meetingplace}.<br/> {* this will work *}<br/> This weeks meeting is in {$meetingPlace}.<br/><br/> This above would output:<br/> Hello Doug Evans, glad to see you can make it.<br/> <br /><br/> This weeks meeting is in .<br/> This weeks meeting is in New York.</p></td></tr></table></div></td></tr></table>
### Associative arrays[关联数组]
You can also reference associative array variables that are assigned from PHP by specifying the key after the '.' (period) symbol.
你也可以通过句号“.”后接数组键的方式来引用从php分配的关联数组变量。
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="EXAMPLE"><tr><td><div class="EXAMPLE"><b>Example 4-3. accessing associative array variables</b> <br/><strong>例4.3.访问关联数组变量 </strong> <table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="PROGRAMLISTING">index.php:
$smarty = new Smarty;
$smarty->assign('Contacts',
array('fax' => '555-222-9876',
'email' => 'zaphod@slartibartfast.com',
'phone' => array('home' => '555-444-3333',
'cell' => '555-111-1234')));
$smarty->display('index.tpl');
index.tpl:
{$Contacts.fax}<br>
{$Contacts.email}<br>
{* you can print arrays of arrays as well *} {* 同样可以用于多维数组 *}
{$Contacts.phone.home}<br>
{$Contacts.phone.cell}<br>
OUTPUT:
555-222-9876<br>
zaphod@slartibartfast.com<br>
555-444-3333<br>
555-111-1234<br></pre> </td> </tr></table></div></td> </tr></table>
### Array indexes[数组索引]
You can reference arrays by their index, much like native PHP syntax.
你也可以使用php原生语法风格引用数组索引。
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="EXAMPLE"><tr><td><div class="EXAMPLE"> <p><b>Example 4-4. accessing arrays by index</b> <br/><strong>例4.4.</strong><strong>通过索引访问数组 </strong> </p> <table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><p><?php<br/> $smarty->assign('Contacts', array(<br/> '555-222-9876',<br/> 'zaphod@slartibartfast.example.com',<br/> array('555-444-3333',<br/> '555-111-1234')<br/> ));<br/> $smarty->display('index.tpl');<br/> ?><br/><br/> index.tpl source:<br/> {$Contacts[0]}<br /><br/> {$Contacts[1]}<br /><br/> {* you can print arrays of arrays as well *}<br/> {$Contacts[2][0]}<br /><br/> {$Contacts[2][1]}<br /></p> <p>This will output:<br/> 555-222-9876<br /><br/> zaphod@slartibartfast.example.com<br /><br/> 555-444-3333<br /><br/> 555-111-1234<br /></p></td> </tr></table></div></td> </tr></table>
### Objects[对象]
Properties of objects assigned from PHP can be referenced by specifying the property name after the '->' symbol.
可以通过‘->‘符号后接指定属性名的方式访问php分配的对象属性(这不是php访问对象属性的方法嘛,直说嘛:))。
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="EXAMPLE"><tr><td><div class="EXAMPLE"><b>Example 4-5. accessing object properties</b> <br/><strong>例4.5.访问对象属性</strong> <table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="PROGRAMLISTING">name: {$person->name}<br>
email: {$person->email}<br>
OUTPUT:
name: Zaphod Beeblebrox<br>
email: zaphod@slartibartfast.com<br></pre> </td> </tr></table></div></td> </tr></table>
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="language.variables.html">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html">Home</a></td><td width="33%" align="right" valign="top"><a href="language.variables.scopes.html">Next</a></td></tr><tr><td width="33%" align="left" valign="top">Variables<br/> 变量</td> <td width="34%" align="center" valign="top"><a href="smarty.for.designers.html">Up</a></td> <td width="33%" align="right" valign="top">Variable scopes<br/> 变量范围 </td> </tr></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使用指南
- 翻译人员列表