流程控制

If 条件是最基本流程控制语句,这个在任何地方都是相当的实用。

code

我们在模板中写下如下的代码:

  1. {if $id==1}
  2. 我的值为1,我为if下的内容。
  3. {elseif $id==2}
  4. 我的值为2,我为elseif下的内容。
  5. {else}
  6. 我的值为{$id},我不是谁的谁!
  7. {/if}

模板编译后的结果:

  1. <?php if ($id==1): ?>
  2. 我的值为1,我为if下的内容。
  3. <?php elseif ($id==2): ?>
  4. 我的值为2,我为elseif下的内容。
  5. <?php else: ?>
  6. 我的值为<?php echo $id; ?>,我不是谁的谁!
  7. <?php endif; ?>

code 特殊符号替换解析

我们在模板中写下如下的代码:

  1. {if $a->name == 1}
  2. a
  3. {/if}
  4. {if hello::run() == 1}
  5. b
  6. {/if}

模板编译后的结果:

  1. <?php if ($a->name == 1): ?>
  2. a
  3. <?php endif; ?>
  4. <?php if (hello::run() == 1): ?>
  5. b
  6. <?php endif; ?>

node

条件支持的一些运算符替换语法如下:

支持字符 替换字符
band &
bxor ^
bor |
bnot ~
bleft <<
bright >>
and &&
or ||
not !=
dot ->
nheq !==
heq ===
neq !=
eq ==
egt >=
gt >
elt <=
lt <

我们在模板中写下如下的代码:

  1. <if condition="($id eq 1) OR ($id gt 100)">one
  2. <elseif condition="$id eq 2" />two?
  3. <else />other?
  4. </if>

模板编译后的结果:

  1. <?php if (($id == 1) OR ($id > 100)): ?>one
  2. <?php elseif ($id == 2): ?>two?
  3. <?php else: ?>other?
  4. <?php endif; ?>

node 版本 的 condition 条件区的解析规则遵循 code 版本 if 标签的 condition 特性。

node 特殊符号替换解析

我们在模板中写下如下的代码:

  1. <if condition="$a.name == 1">
  2. one
  3. </if>
  4. <if condition="hello::run() == 1">
  5. two
  6. </if>

模板编译后的结果:

  1. <?php if ($a->name == 1): ?>
  2. one
  3. <?php endif; ?>
  4. <?php if (hello::run() == 1): ?>
  5. two
  6. <?php endif; ?>

elseif 也适用本规则,非常方便。

JS 风格版本

我们在模板中写下如下的代码:

  1. {% if length(users) > 0 %}
  2. a
  3. {% elseif foo.bar > 0 %}
  4. b
  5. {% else %}
  6. c
  7. {% /if %}

模板编译后的结果:

  1. <?php if (length($users) > 0): ?>
  2. a
  3. <?php elseif ($foo->bar > 0): ?>
  4. b
  5. <?php else: ?>
  6. c
  7. <?php endif; ?>