Внедренные переменные в двойных кавычках

  • Smarty распознает присвоенные переменные, если они встречаются в строках, заключенных в "двойные кавычки", если имена переменных состоят из цифр, букв, знака под_чёркивания и квадратных скобок[]. См. также Переменные.

  • В случае, если переменная содержит другие символы, например точки, ссылки на объекты и т.д., переменную необходимо заключить в `обратные кавычки`. В данном случае вы не можете использовать модификаторы, их следует применять вне кавычек.

  • Вы не можете использовать модификаторы подобным образом - они всегда должны применяться за пределами кавычек.

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} <-- модификатор вне кавычек!

  

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`"}

{*  аналог $module['contact'].'.tpl' в PHP *}
{include file="`$module.contact`.tpl"}

{*  аналог $module[$view].'.tpl' в PHP *}
{include file="`$module.$view`.tpl"}

  

См. также escape.