视图文件的 PHP 替代语法

如果你不使用 CodeIgniter 的模板引擎,则你可以在视图文件中使用原始 PHP 代码。要使 PHP 代码达到最精简并使其更容易辨认,因此建议你使用 PHP 替代语法控制结构及短标记的 echo 语句。 建议你使用 PHP 的语法为你的控制结构和简短的输出标签。如果你还不熟悉这个语法,下面你将学会如何从代码中消灭大括号和“echo”语句。

自动短标记支持

注:如果你发现本页描述的语法在你的服务器上不工作,它可能是“短标记”在你的 PHP ini 文件中禁用了。CodeIgniter 可以重写所有短标记,让你使用这个语法,即使你的服务器不支持它。这个特性可以在你的 config/config.php 文件中打开($config['rewrite_short_tags'])。

请注意,如果你使用这个特性,如果在你的视图文件中发生 PHP 错误,则错误信息和行号将无法准确显示。相反,所有的错误将显示为 eval () 的错误。

替代 Echo

正常的 echo 和 print 输出一般是这样的形式:

  1. <?php echo $variable; ?>

使用替代语法,你能改成这样的形式:

  1. <?=$variable?>

替代控制结构

控制结构,像 ifforforeach,和 while 也可以写成简化的形式。这里是一个用 foreach 的例子:

  1. <ul>
  2. <?php foreach ($todo as $item): ?>
  3. <li><?=$item?></li>
  4. <?php endforeach; ?>
  5. </ul>

注意,这里没有大括号。相反,结束大括号被替换成了 endforeach。上面列出的每一个控制结构也有相似的关闭语法:endifendforendforeachendwhile

并且在每个结构以后注意不要使用分号(除了最后一个),用冒号。这是很重要的!

这有另一个例子,使用 if/elseif/else。注意冒号:

  1. <?php if ($username == 'sally'): ?>
  2. <h3>Hi Sally</h3>
  3. <?php elseif ($username == 'joe'): ?>
  4. <h3>Hi Joe</h3>
  5. <?php else: ?>
  6. <h3>Hi unknown user</h3>
  7. <?php endif; ?>

翻译贡献者:chenshenghan, csfhc, Hex, iiiiissss, laotan, levin