Embedding Vars in Double Quotes {#language.syntax.quotes} =============================== - Smarty will recognize [assigned](#api.assign) [variables](#language.syntax.variables) embedded in \"double quotes\" so long as the variable name contains only numbers, letters and under\_scores. See [naming](&url.php-manual;language.variables) for more detail. - With any other characters, for example a period(.) or `$object->reference`, then the variable must be surrounded by `` `backticks` ``. - In addition Smarty3 does allow embedded Smarty tags in double quoted strings. This is useful if you want to include variables with modifiers, plugin or PHP function results. {func var="test $foo test"} // sees $foo {func var="test $foo_bar test"} // sees $foo_bar {func var="test `$foo[0]` test"} // sees $foo[0] {func var="test `$foo[bar]` test"} // sees $foo[bar] {func var="test $foo.bar test"} // sees $foo (not $foo.bar) {func var="test `$foo.bar` test"} // sees $foo.bar {func var="test `$foo.bar` test"|escape} // modifiers outside quotes! {func var="test {$foo|escape} test"} // modifiers inside quotes! {func var="test {time()} test"} // PHP function result {func var="test {counter} test"} // plugin result {func var="variable foo is {if !$foo}not {/if} defined"} // Smarty block function {* will replace $tpl_name with value *} {include file="subdir/$tpl_name.tpl"} {* does NOT replace $tpl_name *} {include file='subdir/$tpl_name.tpl'} // vars require double quotes! {* must have backticks as it contains a dot "." *} {cycle values="one,two,`$smarty.config.myval`"} {* must have backticks as it contains a dot "." *} {include file="`$module.contact`.tpl"} {* can use variable with dot syntax *} {include file="`$module.$view`.tpl"} > **Note** > > Although Smarty can handle some very complex expressions and syntax, > it is a good rule of thumb to keep the template syntax minimal and > focused on presentation. If you find your template syntax getting too > complex, it may be a good idea to move the bits that do not deal > explicitly with presentation to PHP by way of plugins or modifiers. See also [`escape`](#language.modifier.escape).