smarty 赋值 很简单的一个运算后赋值问题变量循环加1后再将值赋回给该变量,如ASP的“ i=i+1 ”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了smarty 赋值 很简单的一个运算后赋值问题变量循环加1后再将值赋回给该变量,如ASP的“ i=i+1 ”相关的知识,希望对你有一定的参考价值。

我试过这个
assign var="num" value="1"
......
assign var="num" value ="$num + 1"
......
但$num输出结果是“1+1”而不是“2”
如果用 math equation="( x + y ) " x=$num y=1 这种方法的话输出结果是2,但是怎样把这个结果赋值给$num呢?!

参考技术A assign var="num" value=1
......
assign var="num" value =$num + 1

第一行,因为定义的值是数字,所以就不要加引号了,否则就是字符串了。
实验后证明,去掉所有的引号,也是完全可以的。
就像这样:
assign var=num value=1
......
assign var=num value =$num + 1
参考技术B 有问题继续问我噢 高手赚分中 哈哈
math equation="($num+y)" y=1 assign=num

分给我吧本回答被提问者采纳
参考技术C 在tpl文件里面直接$.smarty.server.php_SELF
追问

我没有tpl文件,我是用的是一个PHP的CMS,模板中写Smarty

参考技术D assign var="num" value ="$num"+1追问

不行....
输出结果是:"1"+1

第5个回答  2011-05-20 不知道,在百度也没有人知道。追问

额......不是吧

变量赋值和逗号运算符

【中文标题】变量赋值和逗号运算符【英文标题】:Variable assignment and the comma operator [duplicate] 【发布时间】:2016-12-28 07:24:29 【问题描述】:

谁能帮我解释一下:

int a, b, c, d;
a = 2;
b = 4;
c = a, b;
d = (a, b);

为什么c == 2d == 4 ???

【问题讨论】:

不要在图片中发布代码和结果,这是一个可以在移动设备上查看的 PITA,也可以在编译器中尝试您的代码。 -1,直到你修复它。 好的,很抱歉。 拒绝投票已撤回。 【参考方案1】:

这两个语句都被评估为

c = a;
d = b;

由于 逗号 运算符(在所有运算符中具有最低优先级)在 C 和 C++ 中的工作方式。

对于第一个,首先评估c = a(因为= 的优先级高于逗号运算符)然后评估b(这是一个无操作)。 整个表达式有一个值b,但它没有分配给任何东西。

对于d = (a, b);(a, b) 由于括号而被首先计算。这有一个值b,并分配给d

【讨论】:

@TrầnHồngPhát - 你应该接受这个答案,因为它对你有帮助并且它是正确的。

以上是关于smarty 赋值 很简单的一个运算后赋值问题变量循环加1后再将值赋回给该变量,如ASP的“ i=i+1 ”的主要内容,如果未能解决你的问题,请参考以下文章

Smarty模板函数

Smarty模板函数

smarty模板函数

变量赋值和逗号运算符

C语言基础学习运算符-赋值运算符

JavaScript—赋值表达式-1