カスタム関数 - PHPプロ!マニュアル

Smartyマニュアル

- カスタム関数

第 8章カスタム関数

Smarty は、テンプレートで使用可能なカスタム関数をいくつか実装しています。

{assign}

{assign} は、テンプレート変数を テンプレートの実行時に 割り当てます。

属性名 必須 デフォルト 概要
var string Yes n/a 割り当てられるテンプレート変数の名前
value string Yes n/a テンプレート変数に割り当てる値

例 8-1. {assign}

{assign var='name' value='Bob'}

The value of $name is {$name}.

上の例の出力

The value of $name is Bob.

例 8-2. {assign} での演算子の使用

この複雑な例では、変数を `バッククォート` で囲む必要があります。

{assign var=running_total value=`$running_total+$some_array[row].some_value`}

例 8-3. PHP スクリプトからの {assign} 変数へのアクセス

PHP スクリプトから {assign} 変数にアクセスするには get_template_vars() を使用します。これは、変数 $foo を作成するテンプレートです。

{assign var='foo' value='Smarty'}

テンプレート変数は、以下のスクリプトのように テンプレートの実行後か実行中にしか利用できません。

<?php

// これは何も出力しません。テンプレートがまだ実行されていないからです。
echo $smarty->get_template_vars('foo');

// テンプレートを変数に格納します。
$whole_page $smarty->fetch('index.tpl');

// これは 'smarty' と出力します。テンプレートが実行されたからです。
echo $smarty->get_template_vars('foo');

$smarty->assign('foo','Even smarter');

// これは 'Even smarter' を出力します。
echo $smarty->get_template_vars('foo');

?>

次の関数も、オプションで テンプレート変数へ割り当てることができます。

{capture}{include}{include_php}{insert}{counter}{cycle}{eval}{fetch}{math}{textformat}

assign() および get_template_vars() も参照してください。

閲覧履歴



Pick Up Q&A

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

>>続きを読む

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

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