#php #constants #smarty
#php #константы #smarty
Вопрос:
Я получил константу в PHP
Эта константа записана в Mysql
С помощью Smarty я делаю вывод в HTML
Возможно ли выводить результаты Smarty в php, а не в HTML
<? {$CONSTANTS_RESULT[LOOP]} ?>
?
Комментарии:
1. Ответ прост (я думаю), но сначала вернитесь назад и примите некоторые ответы на свои вопросы.
Ответ №1:
Для доступа к константам PHP в Smarty вы можете использовать, {$smarty.const.MY_CONSTANT}
который задокументирован здесь.
Комментарии:
1. Вы не понимаете. Я хочу, чтобы результаты из mysql были threat в виде констант. Простым словом. Я хочу, чтобы smarty выдавал результаты не в HTML, а в PHP, чтобы PHP мог использовать результаты в качестве констант.
2. Вы бы отправили запрос в mysql для извлечения информации, затем использовали define(), чтобы сделать ее константой. Smarty действительно предназначен только для вывода в html, а не для связи с базой данных. Определите документацию: php.net/manual/en/function.define.php
3. Значит, я не могу отправить вывод Smarty в PHP?
Ответ №2:
или:
$smarty->registerFilter('pre',array($this,'preFilterConstants'));
// '#' Const in Smarty...
public function preFilterConstants($strInput, $objSmarty) {
return preg_replace('|(<!--{[^}] )#([A-Za-z0-9_] )(. ?}-->)|si','$1$smarty.const.$2$3',$strInput);
}
и делать:
<? <!--{#MY_CONSTANT}--> ?>
если вы хотите использовать другой разделитель, просто отредактируйте шаблон…