CodeIgniter ユーザガイド 日本語版 Version 2.0.1


ビューファイル向けの代替のPHP構文

CodeIgniter の テンプレートエンジンを利用したくない場合は、ビューファイルで純粋な PHP を利用することができます。 PHP のコードを最低限にし、コードブロックを簡単に識別できるようにするため、制御構文用の代替の PHP 構文とショートタグを使った出力を利用することをおすすめします。 この構文をあまり使ったことがないでしょうか?これを使えば、 コードから余計な括弧や余計な "echo" 文をなくすことができます。

自動でのショートタグサポート

Note: もし、このページで説明している構文がサーバで利用できないようでしたら "ショートタグ" が php.ini ファイルで無効になっているかもしれません。 CodeIgniter では、オプションで、その都度ショートタグ機能の設定を上書きして、サーバでサポートされていない場合でも、 その構文を利用できるようにすることができます。この機能は、 config/config.php ファイルで有効化することができます。

この機能を利用する場合、ビューファイルでPHP エラーが起こったとき、 エラーメッセージと行番号が正しく表示されないのに注意してください。 すべてのエラーは、eval() を実行したときのエラーとして表示されます。

Echo による出力の代替

通常、何かを出力したり、変数を出力したりするには次のようにします:

<?php echo $variable; ?>

代替の構文を用いると代わりに次のようにすることができます:

<?=$variable?>

制御構造の代替

ifforforeach、それから while のような制御構造は、 次のような単純化されたフォーマットで書くことができます。foreach を使った例は次の通りです:

<ul>

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

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

<?php endforeach; ?>

</ul>

中括弧がいらないのを注意してください。終わりの中括弧が代わりに endforeach に置きかわっています。 各制御構造は、次にリストアップされるように、上記と似た終了の構文になります: endifendforendforeach、および endwhile

また、各制御構造は(最後のものを除き)、各文の末尾にセミコロン ( ";" ) を使う代わりに、コロン ( ":" ) を置くことを注意してください。 これは重要です!

下記は、if/elseif/else を使ったもう一つの例です。コロンのところを注意してみてください:

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

   <h3>Sally さん、こんにちは</h3>

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

   <h3>Joe さん、こんにちは</h3>

<?php else: ?>

   <h3>誰かさん、こんにちは</h3>

<?php endif; ?>