• PHP 标签
    • 基本使用
    • 原始 PHP
    • PHP 内部不能使用标签

    PHP 标签

    PHP 代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的 PHP 语句代码 ,包括下面两种方式。

    基本使用

    1. public function testBaseUse()
    2. {
    3. $parser = $this->createParser();
    4. $source = <<<'eot'
    5. <php>echo 'Hello,world!';</php>
    6. eot;
    7. $compiled = <<<'eot'
    8. <?php echo 'Hello,world!'; ?>
    9. eot;
    10. $this->assertSame($compiled, $parser->doCompile($source, null, true));
    11. }

    原始 PHP

    1. public function testPhpSelf()
    2. {
    3. $parser = $this->createParser();
    4. $source = <<<'eot'
    5. <?php echo 'Hello,world!'; ?>
    6. eot;
    7. $compiled = <<<'eot'
    8. <?php echo 'Hello,world!'; ?>
    9. eot;
    10. $this->assertSame($compiled, $parser->doCompile($source, null, true));
    11. }

    ::: tip
    不过这种方式来使用 PHP 脚本,这是我们大力推荐的写法,用最原始的 PHP 开发应用是我们共同的追求。
    :::

    PHP 内部不能使用标签

    PHP 标签或者 PHP 代码里面就不能再使用标签(包括 code 标签和 node 标签),因此下面的几种方式都是无效的:

    1. public function testErrorExample()
    2. {
    3. $parser = $this->createParser();
    4. // 错误的写法
    5. $source = <<<'eot'
    6. <php>
    7. {if $hello == ''}
    8. Yet !
    9. {/if}
    10. </php>
    11. eot;
    12. $compiled = <<<'eot'
    13. <?php
    14. <?php if ($hello == ''): ?>
    15. Yet !
    16. <?php endif; ?>
    17. ?>
    18. eot;
    19. $this->assertSame($compiled, $parser->doCompile($source, null, true));
    20. }

    ::: tip
    程序运行结果是抛出致命错误,这种写法是错误的。
    :::