У меня есть шаблон smarty, в котором есть набор переменных, представляющий собой пользовательский класс php, называемый «survey».Этот объект имеет переменную-член с именем "receiveientName".Когда я распечатываю переменную, используя следующий код:
{$survey->recipientName}
, она работает нормально.Имя получателя распечатывается, как и следовало ожидать.Однако, если я попытаюсь передать это в функцию, она не будет работать правильно.Возьмите следующий фрагмент кода:
{if substr($survey->recipientName,0,3) eq 'Bob'}
Hello Bob
{else}
You are not Bob
{/if}
Этот фрагмент всегда будет выводить на экран «Вы не Боб», даже если для параметраientientName установлено значение «Bob Smith».В качестве подтверждения концепции следующее работает, как и ожидалось:
{if substr("Bob Smith",0,3) eq 'Bob'}
Hello Bob
{else}
You are not Bob
{/if}
Вышеприведенное выведет «Hello Bob».
Аналогично, я заметил странное поведение и в других местах.Например, возьмем следующий фрагмент кода:
{assign var="recipname" value="$survey->recipientName"}
Это присвоит переменной имя-переменной значение "-> имя-получателя".Я что-то упустил?