2つ以上引数があるPHP関数をSmarty内で使う。

【PHP TIPS】 27. Smarty内でPHP関数を使う:ITpro

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

まことに不本意ながら役に立つ日がきたわけですが、この「パイプを通ってきたものは自動的に第1引数になる」ってのがくせ者で。

str_replace("b", "z", $hoge);

ってやりたくて、

{$hoge|str_replace:"b":"z"}

ってすると、

str_replace($hoge, "b", "z");

ってことになる。
なんだこのqあwせdrftgyふじこlp;って思ってたら、エンゲル係数が高いことで有名なkjirouさんにこんなコメントを賜りました。

{“b”|str_replace:”z”:$hoge} はしたくない的な?

あーその発想は(ry
できました。感覚的にはパイプを通るのはリテラルじゃなくて変数であって欲しいんだけども。

・・・これはおれの頭が固いってことなんだろうか。

コメント

  1. t-matsuda より:

    kjirou先生すげぇ。。。
    その発想ないわーー

    わざわざプラグイン化してました。。

  2. yoshuki より:

    自分で調べるのも大事だけど人と話すってのも大事ッスねー。

タイトルとURLをコピーしました