Embedding Vars in Double Quotes

Smarty will recognize assigned variables embedded in double quotes so long as the variable name contains only numbers, letters, underscores and brackets[] (see naming). With any other characters (period, object reference, etc.) the variable must be surrounded by `backticks`. You cannot embed modifiers, they must always be applied outside of quotes.

Example 3-5. embedded quotes syntax

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!

PRACTICAL EXAMPLES:
{include file="subdir/$tpl_name.tpl"} <-- will replace $tpl_name with value
{cycle values="one,two,`$smarty.config.myval`"} <-- must have backticks

See also escape.