Smarty Manual
Prev | Chapter 3. Basic Syntax | Next

# Embedding Vars in Double Quotes

- Smarty will recognize assigned variables embedded in "double quotes" so long as the variable name contains only numbers, letters, under_scores and brackets[]. See naming for more detail.

- With any other characters, for example a .period or `$object>reference`, then the variable must be surrounded by ``backticks``.

- You cannot embed modifiers, they must always be applied outside of quotes.

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!

Example 3-6. Practical examples
    {* will replace $tpl_name with value *}
    {include file="subdir/$tpl_name.tpl"}

    {* doesn't replace $tpl_name *}
    {include file='subdir/$tpl_name.tpl'} <--

    {* must have backticks as it contains a . *}
    {cycle values="one,two,`$smarty.config.myval`"}

    {*  same as $module['contact'].'.tpl' in a php script
    {include file="`$module.contact`.tpl"}

    {*  same as $module[$view].'.tpl' in a php script
    {include file="$module.$view.tpl"}

See also `escape`.

Prev | Home | Next
Attributes | Up | Math