Basic Syntax: Embedding Vars in Double Quotes

Embedding Vars in Double Quotes

Smarty will recognize assigned variables embedded in "double quotes" so long as the variable name contains only numbers, letters and under_scores. See naming 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.

Example 3.5. Syntax examples

{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

Example 3.6. Examples

{* 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"}