• 流程控制
    • code
    • code 特殊符号替换解析
    • node
    • node 特殊符号替换解析
    • JS 风格版本

    流程控制

    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; ?>