For 循环

    node 简单版

    1. {
    2. $parser = $this->createParser();
    3. $source = <<<'eot'
    4. <for start='1'>
    5. QueryPHP - node - for <br>
    6. </for>
    7. eot;
    8. $compiled = <<<'eot'
    9. <?php for ($var = 1; $var <= 0; $var += 1): ?>
    10. QueryPHP - node - for <br>
    11. eot;
    12. $this->assertSame($compiled, $parser->doCompile($source, null, true));
    13. }

    JS 风格版: 例 1

    1. {
    2. $parser = $this->createParser();
    3. $source = <<<'eot'
    4. {% for item in navigation %}
    5. <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
    6. {% /for %}
    7. eot;
    8. $compiled = <<<'eot'
    9. <?php foreach ($navigation as $key => $item): ?>
    10. <li><a href="<?php echo $item->href; ?>"><?php echo $item->caption; ?></a></li>
    11. <?php endforeach; ?>
    12. eot;
    13. $this->assertSame($compiled, $parser->doCompile($source, null, true));
    14. }

    JS 风格版: 例 3

    1. {
    2. $parser = $this->createParser();
    3. $source = <<<'eot'
    4. {% for mykey item in navigation %}
    5. <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
    6. {% /for %}
    7. eot;
    8. $compiled = <<<'eot'
    9. <?php foreach ($navigation as $mykey => $item): ?>
    10. <li><a href="<?php echo $item->href; ?>"><?php echo $item->caption; ?></a></li>
    11. <?php endforeach; ?>
    12. eot;
    13. $this->assertSame($compiled, $parser->doCompile($source, null, true));