smarty中的串联

Posted

技术标签:

【中文标题】smarty中的串联【英文标题】:Concatenation in smarty 【发布时间】:2012-04-18 20:45:22 【问题描述】:

我想把这两个变量拼接得到的值用一个字符串赋值。

assign var="url" value="$WS_PATHaircraft_images/$images[i].image"

请让我知道我们如何在 smarty 中做到这一点。

【问题讨论】:

这能回答你的问题吗? Smarty local variable concatenation with string 【参考方案1】:

你已经正确使用了assign

一个简化的示例可能如下所示:

你的phpfile.php:

$tpl = new Smarty;
$tpl->assign('var1','Hello');
$tpl->assign('var2','World');
$tpl->display('yourtemplate.tpl');

你的模板.tpl:

...
<body>
assign var="url" value="$var1 - and - $var2"
$url
</body>

...将导致输出:

Hello - and - World

【讨论】:

这确实有效,但它在哪里记录了 O.o ? @jave.web 看看variable examples here in the manual,它们涵盖了大部分用例。 好吧,几乎没有显示 用于解决歧义并在 var/index 命名中连接,没有这种情况... x)【参考方案2】:

其中一个应该可以工作:

assign var="url" value=$WS_PATH|cat:"aircraft_images/"|cat:$images[i].image

或者

assign var="url" value="`$WS_PATH`aircraft_images/`$images[i].image`"

我不确定 $images[i].image 是否会被正确解析,您可能必须先将其 assign 到另一个变量

【讨论】:

第二个更容易阅读和工作(第一个没有) 我认为你不需要多次调用 cat ,简单的 $var|cat:'str1':'str2':....... 对我有用 :)【参考方案3】:

这样的表达式就可以了:

$product1_photo = "$smarty.const.IMG_URL/$pInfo.PhotoName"

【讨论】:

以上是关于smarty中的串联的主要内容,如果未能解决你的问题,请参考以下文章

Smarty:取消设置模板中的数组索引

Smarty:评估存储在 PHP 变量中的模板

smarty中的数字格式

8. Smarty3:模版中的内置函数

使用 smarty 获取数组中的值计数

php页面中的包含文件用相对路径(require_once("./smarty/smarty.class.php"))出错了怎么解决