# 在视图文件中使用 PHP 替代语法

如果你不使用 CodeIgniter 的 模板引擎， 那么你就只能在视图文件中使用纯 PHP 语法了。为了精简视图文件， 使其更可读，建议你在写控制结构或 echo 语句时使用 PHP 的替代语法。 如果你还不熟悉这个语法，下面将介绍如何通过这个语法来消灭你代码 中的大括号和 echo 语句。

## 自动短标记支持

注解

如果你发现本页所介绍的语法在你的服务器上行不通，那么有可能是 你的 PHP.ini 文件中禁用了 “短标记”。CodeIgniter 可以动态的重写 所有的短标记，这样即使你的服务器不支持你也可以使用短标记语法。 这个特性可以在 config/config.php 文件中启用。

请注意，如果你使用了这个特性，当你的视图文件发生 PHP 错误时， 错误信息和行号将无法准确显示，因为所有的错误都显示成 `eval()` 错误。

## Echo 替代语法

通常情况，你会使用下面的方法来打印一个变量:

    <?php echo $variable; ?>

使用替代语法，你可以写成这样:

    <?=$variable?>

## 控制结构的替代语法

像 if、for、foreach、while 这样的控制结构也可以写成精简的格式。 下面以 `foreach` 举例:

    <ul>

    <?php foreach ($todo as $item): ?>

        <li><?=$item?></li>

    <?php endforeach; ?>

    </ul>

注意这里没有任何括号。所有的结束括号被替换成了 `endforeach` 。 上面说的那些控制结构也都有这相似的结束标志：`endif` 、 `endfor` 、 `endforeach` 和 `endwhile` 。

另外要注意的一点是，每个分支结构的后面都要跟一个冒号，而不是分号 （除最后一个），这是非常重要的一点！

这里是另一个例子，使用了 `if`/`elseif`/`else` ，注意看冒号的位置:

    <?php if ($username === 'sally'): ?>

        <h3>Hi Sally</h3>

    <?php elseif ($username === 'joe'): ?>

        <h3>Hi Joe</h3>

    <?php else: ?>

        <h3>Hi unknown user</h3>

    <?php endif; ?>