迅睿 CMS 模板里的条件判断:if 与 switch 的写法差异
摘要
迅睿的模板语法接近原生 PHP,但又有自己的约束,写惯了 PHP 的人反而容易出错。基本 if{if $status == 1} 已发布 {else if $status == 2}
迅睿的模板语法接近原生 PHP,但又有自己的约束,写惯了 PHP 的人反而容易出错。
基本 if
{if $status == 1}
<span class="on">已发布</span>
{else if $status == 2}
<span class="wait">待审核</span>
{else}
<span class="off">草稿</span>
{/if}注意是 {else if} 不是 {elseif},两个词的中间必须有空格,写成连写会编译失败。
多分支:switch
{switch $type}
{case 1}图文{break}
{case 2}视频{break}
{default}其他
{/switch}{break} 不能省,否则会一直往下穿透输出所有分支。这是模板 switch 和 PHP switch 一致的地方,但很多人以为模板会自动跳出。
三目运算
{$count > 0 ? '有评论' : '暂无'}短表达式可以,太长的嵌套三目不要写,模板里没有语法检查,出错只会得到一个空白。
常见判断陷阱
| 写法 | 问题 |
|---|---|
{if $a = 1} | 赋值不是比较,永远为真 |
{if $a == '1 '} | 多了空格,比较失败 |
{if $arr.0} | 数组为空时报未定义下标 |
{if $a && $b} | 模板里要用 and 或确保两边都是布尔 |
调试建议
判断不生效时,先把条件拆开单独输出:{$status},确认值本身对不对。多数所谓“逻辑问题”,其实是变量名拼写错了。
2026年10月20日 14:59
前后30天 · 点日期看归档
9月20日
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日