Smartyå�¯ä»¥è¯†åˆ«å‡ºåœ¨å�Œå¼•å�·ä¸åµŒå¥—çš„ å�˜é‡�值,这些å�˜é‡�å��ç§°å¿…é¡»å�ªåŒ…括 å—æ¯�ã€�æ•°å—和下划线。 å�‚è§�命å��规则。
å�¦å¤–,带有其他å—符的,如点å�·ï¼ˆ.)或者
$object->referenceå½¢å¼�çš„å�˜é‡�, 必须用`å�•引å�·`括起æ�¥ã€‚Smarty3ä¸å…�许在å�Œå¼•å�·ä¸åµŒå…¥Smartyçš„æ ‡ç¾å¹¶è¿�行。 å¦‚æžœä½ éœ€è¦�在å�Œå¼•å�·çš„å�˜é‡�上使用修饰器ã€�æ�’件或者PHP函数ç‰ï¼Œè¿™æ˜¯é�žå¸¸æœ‰ç”¨çš„。
Example 3.5. 例å�
{func var="test $foo test"} // 识别�� $foo
{func var="test $foo_bar test"} // 识别�� $foo_bar
{func var="test `$foo[0]` test"} // 识别�� $foo[0]
{func var="test `$foo[bar]` test"} // 识别�� $foo[bar]
{func var="test $foo.bar test"} // 识别�� $foo (�是 $foo.bar)
{func var="test `$foo.bar` test"} // 识别�� $foo.bar
{func var="test `$foo.bar` test"|escape} // 引�外的修饰器!
{func var="test {$foo|escape} test"} // 引�内的修饰器!
{func var="test {time()} test"} // PHP函数结果
{func var="test {counter} test"} // �件的结果
{func var="variable foo is {if !$foo}not {/if} defined"} // Smarty区�函数
Example 3.6. 例å�
{* 将使用$tpl_name的值 *}
{include file="subdir/$tpl_name.tpl"}
{* �使用$tpl_name的值 *}
{include file='subdir/$tpl_name.tpl'} // 必须用�引��能用��值!
{* 当��包�了点�“.�,必须用�引�括起� *}
{cycle values="one,two,`$smarty.config.myval`"}
{* 当��包�了点�“.�,必须用�引�括起� *}
{include file="`$module.contact`.tpl"}
{* 点���跟��� *}
{include file="`$module.$view`.tpl"}
Note
虽然Smarty能处ç�†æ¯”较å¤�æ�‚的表达å¼�å’Œè¯æ³•,但是最好ä¿�æŒ�模æ�¿è¯æ³•的简æ´�, 把关注的焦点放在显示层é�¢ã€‚å¦‚æžœä½ å�‘现模æ�¿è¯æ³•é�žå¸¸å¤�æ�‚,那么 最好把这些逻辑代ç �转移到æ�’件或者修饰器上,用PHP代ç �进行编写。
å�‚è§�å—符转æ�¢ã€‚
