【发布时间】:2010-01-24 18:09:33
【问题描述】:
我想访问一些我在 Smarty 中通过 PHP 动态分配的变量,这是一个示例:
$content_name = 'body'
$smarty->assign('content_name',$content_name);
$smarty->assign($content_name.'_title',$title);
$smarty->assign($content_name.'_body',$body);
// assigned values
// $content_name = home
// $home_title = $title
// $home_body = $body
我想动态访问这些的原因是因为我调用了包含上述代码的函数的多个版本,它们都使用相同的模板,因此不想简单地使用 $title、$body 等作为它们的值会互相冲突。
鉴于我知道我想根据我设置的 content_name 访问 title 和 body 变量,我如何在 smarty 中实现这一点?
【问题讨论】:
-
人们还在使用 smarty?
-
你有没有想过将你的变量分配到一个数组中,然后可以在 Smarty 中循环?
-
@cvondrick 我仍然使用 smarty - 为什么不呢?
-
在一个数组中...我有一个金发碧眼的时刻吗?...我会检查一下:-P
-
这里以“body”为例,很难想象动态分配变量的情况,因为 {body_title} 通常会在页面上显示一次,因此无需动态分配任何内容.如果您在模板上管理不同的显示块并且需要分配变量,请务必在每个函数中分配数组中的值并按照亚当的建议循环它们。不过,您的代码设计很难理解,可能需要更多地解释您的用例。
标签: php smarty dynamic-variables