smarty переменная доступа со строкой имени переменной

Я не уверен, возможно ли это, но у меня есть переменная, назначенная в файле, который я не могу изменить.

$smarty->assign('signature',$account->options[SIGNATURE]);

Он просто установлен на 1 или 0, но мне нужно это значение позже в файле, в котором я работаю. На странице настроек у меня есть массив, который будет проверять поле подписи на основе этого значения. Это внутри цикла foreach, и я надеялся, что смогу сделать что-то вроде {if ${$settings.signature} eq 1}, где {$settings.signature} будет оцениваться как подпись.

Я считаю, что в php это в основном переменные переменные. Как это сделать в смарте?


person Daffy13    schedule 01.07.2016    source источник


Ответы (1)


Просто добавьте $:

{$settings.$signature}

вернет $settings[0], если $signature равно 0

Если вместо этого вам нужно значение $settings0:

{$settings{$signature}}

прочтите документацию Smarty для получения дополнительной информации о переменных.

person Borgtex    schedule 02.07.2016
comment
Извините, мой вопрос немного сбивает с толку. $settings.signature будет оценивать строку «подпись», поэтому это можно сделать для нескольких настроек с разными именами. Я могу построить массив с этими именами для доступа к каждому из них. - person Daffy13; 05.07.2016
comment
Я не очень понимаю, что вы имеете в виду. Можете ли вы написать простой пример содержимого $settings? - person Borgtex; 05.07.2016
comment
$settings[] = array('category'=›'General', 'roles'=›array(STANDARD),'type'=›'bool','label'=›'Signature Pad', 'signature'=› 'подпись'); - person Daffy13; 05.07.2016
comment
так что... может быть, вы хотите... {$value=$settings.signature}, а затем {$settings.$value}? если нет, то как бы вы сделали то, что вы просите, на чистом php, а затем, возможно, сможете перевести это на smarty? - person Borgtex; 05.07.2016
comment
Если вы использовали переменные-переменные PHP, это выглядит так: $Hello = World; $а = Привет; $а; //Возвращает Привет $$a; //возвращает мир - person Daffy13; 05.07.2016
comment
Тогда как второй пример: {${$a}} - person Borgtex; 06.07.2016
comment
Я не думаю, что у вас могут быть фигурные скобки внутри фигурных скобок в smarty. - person Daffy13; 06.07.2016
comment
ммм, я только что заметил, что вы пометили вопрос как smarty2. Я полагаю, что это было введено в smarty3. - person Borgtex; 06.07.2016
comment
В этом случае мы надеемся, что скоро сделаем это обновление. Спасибо за помощь - person Daffy13; 06.07.2016