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


ビューファイル向けの代替の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; ?>