ビューファイル向けの代替のPHP構文
CodeIgniter の テンプレートエンジンを利用したくない場合は、ビューファイルで純粋なPHPを利用することができます。PHPのコードを最低限にし、コードブロックを簡単に識別できるようにするため、制御構文用の代替のPHP構文とショートタグを使った出力を利用することをおすすめします。この構文をあまり使ったことがないでしょうか?これを使えば、コードから余計な括弧や余計な"echo"文をなくすことができます。
自動でのショートタグサポート
Note: もし、このページで説明している構文がサーバで利用できないようでしたら "ショートタグ" が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>Sallyさん、こんにちは</h3>
<?php elseif ($username == 'joe'): ?>
<h3>Joeさん、こんにちは</h3>
<?php else: ?>
<h3>誰かさん、こんにちは</h3>
<?php endif; ?>