PHPTALで変数を表示する

分岐やデフォルト値

PHPTAL では、PHP からの変数の有無による条件分岐、変数が存在しない場合に表示するデフォルト値設定、等が可能です。

特定の条件の時のみ表示するtal:condition

PHPTAL 内に、条件判定を記述することができます。 例えば tal:condition を使うと、条件に合うときだけ表示する、ということができます。

下の例では、description が存在する(定義されている)時のみ、パラグラフ(pタグ)を出力します。

<p tal:condition="exists:description" tal:content="description" />

condition の条件判定部分 exists:XXXX は、XXXX があれば真を返す(なければ偽を返す)です。

値が無いときにデフォルト値を返す default

tal:content に、| default を追加すると、値が存在しないときにデフォルト(元のHTML)を表示します。

<h1 tal:content="title | default">ダミータイトル</h1>

title が存在すれば、<h1>PHPTAL</h1>のように表示します。存在しない場合、<h1>ダミータイトル</h1>と表示します。

| を用いた式の連結

| は、上記の | default でも使用しました。 | は、| の左側の処理結果が NULL やエラーだった場合に、| の右側の処理を行います。 このため、上記の例では、title が存在しない場合に default(テンプレート上のダミーデータ)を表示します。

下記の例では、複数の変数を左から順に調べ、NULL で無い値を見つけたら表示します。

<p tal:content="page_description | site_description | default">このページの説明</p>

下記の順に処理が行われます。

  1. page_descriptionがあれば表示する。
  2. page_descriptionがNULLでsite_descriptionがあれば表示する。
  3. page_descriptionもNULL、site_descriptionもNULLであれば、デフォルト値を表示する。
Copyright (C) 2003-2012. PHP で WEB 作成 All rights reserved.
  • よくある質問