修正子でPHP関数
Smartyの修正子は、標準装備の修正子のほかに、カスタムで作成した修正子も使用できるし、PHPの関数も修正子として利用できる(普段、普通に使用していた)。
しかし修正子としてstr_replaceを使うと、なぜかうまく動いてくれなくて、理由がわからない(例によってSmartyのソースを読むのが嫌だから)。いろいろ調べて、Smarty標準装備のreplaceという修正子で対応できることがわかった(当然こちらを使うのが正統派)。
ではなぜstr_replaceはダメなのか。
ウェブを調べていたら「暗黙的な修正子としてPHP関数を・・・」という記述があった。どうやらPHP関数によってはうまく動作しないものがあるようだ(だから標準の修正子を使えって話なのだろう)。