{php}関数 PHP コードを直接テンプレートに書き込む

PHP コードを直接テンプレートに埋め込むことができます。
$php_handling の設定にかかわらず、これはエスケープされません。

このテンプレート内で、Smartyの変数を定義することも可能です。

テンプレート

{php}
  echo 'テンプレート内のPHPでechoもできます';

  // 変数を Smarty に割り当てます
  $this->assign('hoge','テスト');
{/php}

{* テンプレート内のPHPで指定された変数も使えます *}
{$hoge}

注意 Smartyは、オブジェクトとして動作するため、 {php} ブロック内の PHP 変数にアクセスするには、PHP の global キーワードを使う必要があります。

PHP

$a = 1;
$b = 2;

テンプレート(1)

{php}
  // PHPの変数を使うには global を使います
  global $a, $b;

  if($a == $b){
    echo 'テンプレート内のPHPでechoもできます';
  }
{/php}

テンプレート(2)

{php}
  // PHPの変数を使うには global を使います
  if($GLOBALS['a'] == $GLOBALS['b']){
    echo 'テンプレート内のPHPでechoもできます';
  }
{/php}

スポンサーリンク

関連記事

スポンサーリンク

しものせき水族館 海響館

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る