[PHP-users 28960] Re: 変数内で関数を実現するには

Mitsutoshi Nakamura gmataw @ bitvalue.com
2006年 4月 9日 (日) 16:15:49 JST


中村@東京です。

Shusaku Kawaguchi wrote:
> データベースから取得した文字列、$Stringには以下のような文字列が
> 入っています。
> 
> function MUL($FL) {
>      if($FL == 5) {
>           $RE = "<BR>";
>      } else {
>           $RE = "<BR><BR>";
>      }
>      return $RE;
> }
> $String = "あいうえお。MUL(5)";
> print $String;
> 
> 期待する表示結果は「あいうえお。<BR>」ですが、

最初は、eval で何とかできるか?
と思いましたが以下で動くようです。

---
function MUL ($FL) {
  $FL[1] == 5 ? $RE = '<BR>' : $RE = '<BR><BR>';
  return $RE;
}
$String = 'あいうえお。MUL(6)';
echo preg_replace_callback("/MUL\(([^)]+)\)/", "MUL", $String);
---



PHP-users メーリングリストの案内