{eval} - PHPプロ!マニュアル

Smartyマニュアル

- {eval}

{eval}

{eval} は、与えられた変数をテンプレートとして評価します。 テンプレート変数又はテンプレートタグを 変数や設定ファイル内に埋め込むような用途に使われます。

assign 属性が指定されると、 {eval} 関数の出y録はこのテンプレート変数に割り当てられ、 テンプレートに出力されることはありません。

属性名 必須 デフォルト 概要
var mixed Yes n/a 評価される変数 (又は文字列)
assign string No n/a 出力が割り当てられるテンプレート変数

テクニカルノート:

  • 評価される変数は、テンプレートと同じように扱われます。 エスケープやセキュリティ機能も、テンプレートと同様になります。

  • 評価される変数はリクエスト毎にコンパイルされるので、 コンパイルされた形式では保存されません。ですが、 キャッシュ が有効に設定されている場合は、 残りのテンプレートの出力に関してはキャッシュされます。

例 8-6. {eval}

設定ファイル setup.conf

emphstart = <strong>
emphend = </strong>
title = Welcome to {$company}'s home page!
ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
ErrorState = You must supply a {#emphstart#}state{#emphend#}.

テンプレート

{config_load file='setup.conf'}

{eval var=$foo}
{eval var=#title#}
{eval var=#ErrorCity#}
{eval var=#ErrorState# assign='state_error'}
{$state_error}

上のテンプレートの出力

This is the contents of foo.
Welcome to Foobar Pub & Grill's home page!
You must supply a <strong>city</strong>.
You must supply a <strong>state</strong>.

例 8-7. もうひとつの {eval} の例

これは、サーバ名 (大文字変換したもの) と IP を出力します。 割り当てられる変数 $str は、 データベースのクエリから取得します。

<?php
$str 
'The server name is {$smarty.server.SERVER_NAME|upper} '
       
.'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
?>

テンプレート

{eval var=$foo}

閲覧履歴



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)