Как мне проверить, назначена ли уже переменная Smarty?
-
20-08-2019 - |
Вопрос
Как мне проверить, было ли определенное значение уже присвоено Smarty, и если нет, то присвоить значение (по умолчанию)?
Ответ:
if ($this->cismarty->get_template_vars('test') === null) {
$this->cismarty->assign('test', 'Default value');
}
Решение
Умный 2
if ($smarty->get_template_vars('foo') === null)
{
$smarty->assign('foo', 'some value');
}
Умный 3
if ($smarty->getTemplateVars('foo') === null)
{
$smarty->assign('foo', 'some value');
}
Обратите внимание, что для Умный 3, вам придется использовать $smarty->getTemplateVars
вместо этого.
Другие советы
get_template_vars()
вернет значение null, если вы не установили переменную, так что вы можете сделать
if ($smarty->get_template_vars('test') === null) {
echo "'test' is not assigned or is null";
}
Однако эта проверка завершится неудачей, если у вас назначена переменная, но установлено значение null, и в этом случае вы могли бы сделать
$tmp = $smarty->get_template_vars();
if (!array_key_exists('test', $tmp)) {
echo "'test' is not assigned";
}
Почти уверен, что ты сможешь сделать:
if (!isset($smarty['foo']))
{
$smarty->assign('foo', 'some value');
}
Не связан с StackOverflow