0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

備忘録:Smarty

Last updated at Posted at 2015-09-01

Smarty マニュアル | Smarty

debug

↓これを

$spam = array(
    'a' => 'あ',
    'b' => 'い',
    'c'=> array(
        'd' => 'う'
    )
);
$smarty->assing('spam', $spam);

↓こうして

{$spam|@debug_print_var}

↓こうなる

Array (3)
a => あ
b => い
c => Array (1)
 d => う

debug_print_var はデフォルトでは 40 文字で表示が切られてしまうけど、オプションで調節可能。
100 文字まで表示したい場合は,以下のように指定すればよい。
100 の前のオプションの 0 は,配列やオブジェクトを表示する際のインデント幅。

{$spam|@debug_print_var:0:100}

if

{if $spam eq 'a'}
    A SPAM
{elseif $spam eq 'b'}
    B SPAM
{else}
    PIYO
{/if}

比較演算子

| 比較演算子 | 代替 | 構文 | 意味 | PHPの場合 |
|:--------- |:-----|:-----|:-----|:-----|:-----|
| == | eq | $a eq $b | 等しい | == |
| === | | $a === 0 | 同一性のチェック | === |
| != | ne, neq | $a neq $b | 等しくない | != |
| > | gt | $a gt $b | より大きい | > |
| < | lt | $a lt $b | より小さい | < |
| >= | gte, ge | $a ge $b | 以上 | >= |
| <= | lte, le | $a le $b | 以下 | <= |
| ! | not | not $a | 否定 (単項) | ! |
| % | mod | $a mod $b | 剰余 | % |
| is [not] | div by | $a is not div by 4 | 割り切れる | $a % $b == 0 |
| is [not] | even | $a is not even | 偶数である [ない] (単項) | $a % 2 == 0 |
| is [not] | even by | $a is not even by $b | 偶数番目のグループである [ない] | ($a / $b) % 2 == 0 |
| is [not] | odd | $a is not odd | 奇数である [ない] (単項) | $a % 2 != 0 |
| is [not] | odd by | $a is not odd by $b | 奇数番目のグループである [ない] | ($a / $b) % 2 != 0 |

foreach

{foreach from=$data key=spam_key item=spam_item name=spam_data}
	{$smarty.foreach.spam_data.iteration}回目<br />
	キー => {$spam_key}<br />
    データ => {$spam_item}<br />
{foreachelse}
	データが存在しません
{/foreach}

全ループ回数:{$smarty.foreach.spam_data.total}

| 属性名 | 型 | 必須 | デフォルト | 概要 |
|:--------- |:-----|:-----|:-----|:-----|:-----|
| from | array | Yes | n/a | ループに使用する配列 |
| item | string | Yes | n/a | 現在の要素を示す変数の名前 |
| key | string | No | n/a | 現在のキーを示す変数の名前 |
| name | string | No | n/a | foreach プロパティにアクセスするための foreach ループ名 |

  • name は、英数字とアンダースコアを使用して自由に命名可能。これは PHP の変数 と同じ
  • 必須の属性は from と item
  • {foreach} ループはネスト可能で、ネストした {foreach} の name はお互いにユニークである必要がある
  • from 属性は、通常は値の配列で、 {foreach} のループ回数を決定するために使われる
  • {foreachelse} は、 from 変数の値が存在しない場合に実行される
  • {foreach} ループは、プロパティを操作する変数を自身で持っている
    • 例:{$smarty.foreach.name.property}:ここでの “name” は name 属性の値となる

プロパティ

プロパティ名 概要
index 現在の配列のインデックスを0(ゼロ)から数えた値
iteration 現在のループが反復された回数。 index とは異なり、常に 1 から始まる。
first 現在の {foreach} の反復が最初のものであるときに TRUE となる
last 現在の {foreach} の反復が最後のものであるときに TRUE となる
show {foreach} のパラメータとして使用。boolean 値。
FALSE の場合は {foreach} は表示されず、 もし {foreachelse} が存在すれば、それが代わりに表示される。
total {foreach} がループするトータル回数。
これは、{foreach} の内部だけではなくループを抜けた後でも使用可能。

修飾子

変数の修飾子は、変数・カスタム関数・文字列を修飾しての出力が可能。
修飾子を適用するには、 変数名の後に | (パイプ) と修飾子の名前を指定する。
また、修飾子はその動作に影響を及ぼす追加のパラメータを受け入れる場合もある。そのパラメータは修飾子の後に続き、: (コロン) によって区切られる。
また、すべての PHP関数は、暗黙的に修飾子として使用でき、修飾子は組み合わせることも可能。

| 修飾子 | パラメータの位置 | 型 | 必須 | デフォルト | 概要 |
|:--------- |:--------- |:-----|:-----|:-----|:-----|:-----|
| default | 1 | string | No | empty | 変数が空の場合に表示されるデフォルト値 |

修飾子として良く使うPHP関数

修飾子 概要
number_format カンマをつけて出力させる
{$num|number_format}
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?