ThinkPHP 模型及操作中使用算术运算符与原生 PHP 一致,主要的困扰是在模板中使用算术运算符有些需要注意的地方。
首先要明确的是,ThinkPHP 内置模板引擎支持在模板中使用算术运算符(+、-、*、/ 和 %),例子:
public function index(){ $x = 1; $y = 2; $z = 3; $this->assign('x', $x); $this->assign('y', $y); $this->assign('z', $z); }
在对应的模板中输出对它们做数学运算后的结果:
{$x+$y} {$x+$y*$z}
输出的结果分别是 3 和 7。
在模板中使用数学运算符时,不能使用点号语法和常规的函数用法。所以如果是查询结果等,尽量使用数组语法,如:
// 错误用法 {$user.score+10} // 正确用法 {$user['score']+10} {$user['score']*$user['level']} // 错误用法 {$user['score']|myFun*10} // 正确用法 {$user['score']+myFun($user['level'])}
上面例子中 myFun 是一个自定义函数或者 PHP 内置函数,详细参见《ThinkPHP 在模板中使用函数》。