在我的PHP应用程序中,我使用Smarty进行模板化并使用一些自定义函数。在下面的示例中,函数名称是“text”,它采用“key”属性。此函数将根据键
获取字符串值以下示例可以正常运行。
{text key='isearch+login_name'}
我要做的是将值动态传递给属性。在下面的代码中,变量$ plugin将具有dynmaci值并希望被替换。
{text key='isearch+$plugin_plugin'}
使用上面的代码,我得到'isearch + $ plugin_plugin'的输出而不是正确的字符串值。
Smarty功能的PHP函数如下。
function smarty_function_text($params, $smarty)
{
$key = $params['key'];
unset($params['key']);
$key = explode('+', $key);
return OW::getLanguage()->text($key[0], $key[1], $params);
}
答案 0 :(得分:2)
使用cat
过滤器的解决方案:
{text key="isearch+"|cat:$plugin|cat:"_plugin"}
或者,您可以只用双引号添加字符串,并使用内部引号标记变量部分:
{text key="isearch+`$plugin`_plugin"}