如何在 Smarty 2x 中动态应用变量修饰符

Posted

技术标签:

【中文标题】如何在 Smarty 2x 中动态应用变量修饰符【英文标题】:How to dynamicly apply variable modifiers in Smarty 2.x 【发布时间】:2010-06-04 12:53:17 【问题描述】:

我在 Smarty 中找不到动态应用修饰符的解决方案。

模板 - 我想以这种方式工作(示例)

$myVariable|$modifiers

php 脚本

$smarty->assign('myVariable', "brumla brumla na drum drum drum");
$smarty->assign('modifiers', "truncate:30|trim");

或者我想在 php 中应用修饰符 - 有什么方法可以在 php 中解析和应用修饰符吗?

感谢您的回答。

【问题讨论】:

【参考方案1】:

每个 Smarty 修饰符都是真正的 PHP 函数,称为 smarty_modifier_$name()。这个函数可以像任何其他函数一样调用。

因此,在该示例代码中,您只需执行以下操作:

<?php
$myVariable = "brumla brumla na drum drum drum";
$myVariable = smarty_modifier_truncate($myVariable, 30);
$myVariable = smarty_modifier_trim($myVariable);
$smarty->assign('myVariable', $myVariable);

当然你可以使用call_user_func() 让它更有活力。

【讨论】:

如果我没有 Smarty 实例,那么修饰符 date_format 又如何呢?这个修饰符调用 smarty 对象...

以上是关于如何在 Smarty 2x 中动态应用变量修饰符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Smarty 修饰符函数中分配新变量?

Smarty:如何修复“未知修饰符'rewrite'”异常?

Smarty3——复合变量修饰器输

使用 Smarty 修饰符

如何在 smarty 中增加分配的变量而不显示它

Smarty中用户自定义插件