注目の書籍

好評発売中!

IT業界徹底研究就職ガイド2013年版

IT/ネット業界で働くと いうことを分かりやす く解説。2013年3月卒 業の学生向けの1冊。

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux

PHP TIPS

ITpro

27. Smarty内でPHP関数を使う

2007/04/17

Smartyユーザーの皆さんは既にご存知の通り修正子が用意されており、変数を加 工して出力する事が出来ます。

{assign var="corporation" value="asial corporation"}
{$corporation|capitalize}

(上記のような既存の修正子が用途に合わない場合 || 必要とあらば) pulginsの 中にmodifierファイルを作成して好きなように変数を加工することができます。

これ以外にも暗黙的な修正子としてPHP関数を修正子として利用する事ができる のです。 以下に使用例を記述します。

{assign var="password" value="Secret Password"}
{$password|md5}

勿論、md5をかけるmodifierファイルを作成していなくても動作します。

{assign var="corporation" value="asial corporation"}
{$corporation|capitalize|strtr:" ":"-"}

上記のように引数を持つ場合はSmarty変数が第1引数となり、第2引数以降は:で 区切って渡します。 このような使い方にはあまり遭遇しないと思いますが、頭の隅に入れておけば必 ず役に立つ日がきます!

また、Smartyのif文の条件式にもPHP関数がそのまま使う事が出来ます。

<select name="regist_year">
{foreach from=$year_list item=year}
  <option value="{$year|escape}"{if date("Y") == $year}
selected="selected"{/if}>{$year|escape}</option>
{/foreach}
</select>

下記のようにSmarty変数を判定の対象とすることも出来ます。

{if is_numeric($data)}数値です{else}数値ではありません{/if}

Smartyのテンプレートはあくまでビューなので、PHP関数の過度な使用はお勧め できません。 ですが、ちょっとした時にこういった使い方ができることを知っていると、何か と便利な事もあるんじゃないでしょうか。



(アシアル 海原才人)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介