ThinkPHP 比较运算符与逻辑运算符
ThinkPHP 的模型、操作及模板中都可能用到比较运算符与逻辑运算符,其中有的地方可以直接使用 PHP 的运算符,而有的地方必须使用 ThinkPHP 特有的运算符。初学者对此往往比较迷惑,本文就 ThinkPHP 中使用比较运算符与逻辑运算符的情况做个详细的介绍。
操作中使用运算符
使用PHP运算符
在操作中,一般的逻辑代码片段可以直接使用 PHP 中的运算符,如:
public function index(){ if(intval($_GET['id']) > 0){ echo 'id 参数有效'; } }
使用ThinkPHP运算符
在执行数据库操作时,在构造数组查询条件的时候需要使用 ThinkPHP 运算符:
public function index(){ // uid <= 5 $condition['uid'] = array('elt',5); $list = $Dao->where($condition)->select(); }
如果使用:
$condition['uid'] <= 5;
这显然是一个错误的语法,以及如下使用方式也是错误的(会提示:表达式错误):
$condition['uid'] = array('<=',5);
唯一的例外是赋值运算(=)可以直接使用:
$condition['uid'] = 5;提示
对于 where 条件,也可以直接以字符串的方式传入,这种情况下直接使用 PHP 运算符:
$list = $Dao->where('uid <= 5')->select();
模板中使用运算符
在模板中必须使用 ThinkPHP 运算符。注意这里说得必须使用是指模板判断标签而不是说模板中不允许出现任何 PHP 运算符。
例如在 if 标签中使用 ThinkPHP 运算符:
<if condition="$vo['uid'] lt 10">
另外模板中的比较标签也具有跟运算符相同的意义:
<lt name="vo['uid']" value="10">value</lt>
ThinkPHP运算符与PHP运算符对照表
ThinkPHP标签 | 说明及对应PHP标签 | 备注 |
---|---|---|
eq | 等于(=)(==:用于模板判断时) | 可用于查询条件与模板判断 |
neq | 不等于(!=) | 可用于查询条件与模板判断 |
gt | 大于(>) | 可用于查询条件与模板判断 |
egt | 大于等于(>=) | 可用于查询条件与模板判断 |
lt | 小于(<) | 可用于查询条件与模板判断 |
elt | 小于等于(<=) | 可用于查询条件与模板判断 |
heq | 恒等于(===) | 可用于模板判断 |
nheq | 不恒等于(!==) | 可用于模板判断 |
AND | 逻辑与(&&) | 可用于查询条件 |
OR | 逻辑或(||) | 可用于查询条件 |
参考阅读
- PHP 运算符
- ThinkPHP 比较标签
- ThinkPHP If 标签
- ThinkPHP Where 条件